欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker快速上手及常用指令集

程序员文章站 2022-03-04 18:41:40
...

Docker快速上手及常用指令集

建议 可以先把 泡泡slam的三个 docker 文章都阅读一遍
【泡泡Docker乐园】手把手带你走进Docker世界
【泡泡Docker乐园】Dockerfile简易教程 & LARVIO镜像
【泡泡Docker乐园】泡泡Docker基础镜像集发布

Docker 快速安装配置

参考博客:
Docker 学习笔记:Ubuntu16.04上Docker的安装及基本用法

1. 安装docker

ubuntu 安装步骤 清华镜像源安装说明

首先安装依赖:

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

信任 Docker 的 GPG 公钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

对于 amd64 架构的计算机,添加软件仓库:

sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

最后安装

sudo apt-get update
sudo apt-get install docker-ce

2. DockerHub镜像配置

在 /etc/docker/daemon.json(没有则新建)文件中写入

{
    "registry-mirrors":["https://docker.mirrors.ustc.edu.cn/"]
}

重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

3.验证安装

 sudo docker -v

查看 docker-ce 的版本,如果输出与下面类似的文本,则表明软件已经安装成功。

Docker version 19.03.13, build 4484c46d9d

4.配置免sudo运行docker命令

加入docker 用户组

sudo groupadd docker
sudo gpasswd -a ${USER} docker
newgrp docker

检验 是否 免sudo 成功
输入 下面指令没有报错则成功

docker ps

5.启动Docker

查看docker服务是否启动:

sudo systemctl status docker

如果Docker未启动,则启动Docker:

sudo systemctl start docke

6.三个拉取docker 镜像demo

6.1 docker 拉取 hello-world image

搜索hello-world image

docker search hello-world

Docker快速上手及常用指令集
该表格包含五列,含义如下:

  • NAME:镜像仓库名称。

  • DESCRIPTION:镜像仓库描述。

  • STARS:镜像收藏数,表示该镜像仓库的受欢迎程度,类似于GitHub的Stars。

  • OFFICAL:表示是否为官方仓库,该列标记为[OK]的镜像均由个软件的官方项目组创建和维护。由结果可知,java这个镜像仓库是官方仓库,而其他仓库都不是官方镜像仓库。

  • AUTOMATED:表示是否为自动构建镜像仓库。

从 dockerhub 中下载image

docker pull hello-world

Docker快速上手及常用指令集
查看已下载的image

docker images

Docker快速上手及常用指令集

建立容器,运行hello-world

docker run hello-world

Docker快速上手及常用指令集

6.2 docker 拉取 Nginx

参考博客: Docker 安装 Nginx
查找当前最新版本

docker search nginx

取最新版的 Nginx 镜像

 docker pull nginx:latest

Docker快速上手及常用指令集
运行容器

docker run --name nginx-test -p 8080:80 -d nginx

参数说明:
–name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。

最后我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务:

noVnc可视化 (浏览器可视化)

在浏览器输入,可看到nginx的结果

http://localhost:8080/

Docker快速上手及常用指令集

6.3 Docker练习例子:基于 VNCServer + noVNC 构建 Docker 桌面系统

参考博客:
添加链接描述
【泡泡Docker乐园】泡泡Docker基础镜像集发布

下载指定的镜像images

docker pull dorowu/ubuntu-desktop-lxde-vnc

输入运行docker 命令

docker run -it -p 5900:5900 dorowu/ubuntu-desktop-lxde-vnc

Docker快速上手及常用指令集

noVNC可视化

docker run -it --rm -p 8080:80 dorowu/ubuntu-desktop-lxde-vnc

浏览器 http://127.0.0.1:8080/Docker快速上手及常用指令集

VNC可视化

vnc 下载地址
Docker快速上手及常用指令集
VNC 输入 :5900
Docker快速上手及常用指令集
即可看到界面
Docker快速上手及常用指令集

Docker 常用指令集

参考博客:
Docker 学习笔记:Ubuntu16.04上Docker的安装及基本用法

搜索镜像

sudo docker search java

下载镜像

sudo docker pull java

列出本地镜像

docker images

Docker快速上手及常用指令集

  • REPOSITORY:镜像所属仓库名称

  • TAG:镜像标签。默认是latest,表示最新。

  • IMAGE ID:镜像ID,表示镜像唯一标标识

  • CREATED:镜像创建时间

  • SIZE:镜像大小

删除本地镜像:

删除指定名称的镜像

sudo docker rmi hello-world

删除所有镜像

sudo docker rmi -f $(docker images)

-f 参数表示强制删除

Docker容器常用命令

新建并启动容器

使用docker run命令即可新建并启动一个容器。

该命令是最常用命令,它有很挫选项,下面将列举一些常用选项。

  • d 选项:表示后台运行

  • P 选项:随机端口映射

  • p 选项:指定端口映射,有一下四种格式

    • ip:hostPort:containerPort

    • ip::containerPort

    • hostPort:containerPort

    • containerPort

  • network 选项:指定网络模式,该选项有一下可选参数:

    • –network=bridge:默认选项,表示连接到默认的网桥。

    • –network=host:容器使用宿主机的网络。

    • –network=container:NAME_or_ID:告诉Docker让新建的容器使用已有容器的网络配置。

    • –network=none:不配置该容器的网络,用户可自定义网络配置。

示例1:

sudo docker run java /bin/echo 'Hello World'

这样终端会打印Hello World的字样,跟在本地直接执行/bin/echo ‘Hello World’ 一样。

示例2:

sudo docker run -d -p 91:80 nginx

这样就能启动一个Nginx容器。在本例中,为docker run添加了两个参数,含义如下:

-d # 后台运行
-p 宿主机端口:容器端口 # 开放容器端口到宿主机端口

浏览器输入 以下地址,可访问Nginx

localhost:91
列出本地容器
docker ps

如需要列所有容器(包括已停止的容器),可使用 -a 参数。

docker ps -a

该表格包含了7列,含义如下:

  • CONTAINER_ID:表示容器ID

  • IMAGE:表示镜像名称

  • COMMAND:表示启动容器时运行的命令

  • CREATED:表示容器创建时间

  • STATUS:表示容器运行状态。UP表示运行中,Exited表示已停止。

  • PORTS:表示容器对外的端口号

  • NAMES:表示容器名称,该名称默认由Docker自动生成,也可使用docker run命令的–name选项自定指定。

停止容器

使用docker stop命令,即可停止容器,例如:

sudo docker stop 2730ed88f8e5

其中 2730ed88f8e5 是容器ID,当然也可以使用 docker stop 容器名称 来停止指定容器。

启动已停止的容器

使用docker run命令,即可新建并启动一个容器。对于已停止的容器,可以使用docker start命令来启动。例如:

sudo docker start 2730ed88f8e5
重启容器

可使用docker restart命令来重启容器。该命令实际上是先执行了docker stop命令,然后再执行了docker start命令。

进入容器

某场景下,可能需要进入运行中的容器。

使用docker attach命令进入容器。例如:

sudo docker attach 2730ed88f8e5
删除容器

删除指定容器

sudo docker rm 2730ed88f8e5

删除所有容器

 sudo docker rm -f $(docker ps -a -q)