- Docker的核心是 Docker engine, 它是一个 single-host software daemon ,帮助我们创建和管理containers
- 一个标准的容器生命周期包括: creating, starting, stopping, killing和removing containers.
- A Dockerfile is a manifest that describes how to build a container image
centoros 7 install : https://www.cnblogs.com/qingyunzong/p/9011006.html
1. 查看ubuntu内核版本

2. Ubuntu 18.04安装Docker Enterprise Edition (Docker EE)
2.1更换国内软件源(可选)
先备份一下:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
/etc/apt/sources.list 是包管理工具 apt 所用的记录软件包仓库位置的配置文件
方法一:
先查看ubuntu的版本名,ubuntu20.04对应的是“focal”,,“eoan”代表ubuntu19.10,“xenial”代表ubuntu16.04,“bionic”代表ubuntu18.04,“disco”代表ubuntu19.04,看的方法如下:
yay@yay-VirtualBox-3:~$ lsb_release -c
Codename: xenial
yay@yay-VirtualBox-3:~$
然后可以用下面阿里云地址中的任意一个:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
然后:
sudo apt update
sudo apt upgrade
方法二:
推荐中国科技大学的源,稳定速度快
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update
2.2 安装CA证书
在安装Docker之前,首先需要先更新apt,安装CA证书,因为访问Docker用的是https协议;
sudo apt install apt-transport-https ca-certificates software-properties-common curl
2.3 添加 GPG 密钥和 Docker-ce 软件源
这里还是以中国科技大学的 Docker-ce 源为例
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"
说明:如果用上述方法更新Docker国内镜像源失败,则也可用下面这个简单的方法:
第一步,更换镜像地址: /etc/docker/下新建daemon.json,并输入以下内容
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}
第二步,重启Docker,使配置生效:------说明:这个第二步骤不需要
root@yay:~# systemctl daemon-reload
root@yay:~# systemctl restart docker
root@yay:~# docker info
可以看到下面的信息:图片.png
2.4 添加成功后更新软件包缓存
sudo apt update
2.5 安装 Docker-ce
sudo apt install docker-ce
2.6 设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)
sudo systemctl enable docker
sudo systemctl start docker
2.7测试运行
sudo docker container run hello-world
2.8 用非root账户访问Docker
yinbodotcc@yay:~$ sudo groupadd docker
yinbodotcc@yay:~$ sudo gpasswd -a ${USER} docker
[sudo] yinbodotcc 的密码:
正在将用户“yinbodotcc”加入到“docker”组中
yinbodotcc@yay:~$ sudo service docker restart
yinbodotcc@yay:~$ newgrp - docker
其中:
gpasswd -a:-a参数表示添加用户到组;
newgrp 命令用于登入另一个群组
- 查看docker版本信息

说明:
Images are typically built to run a single process. If your app needs to work with other services, you run those services in their own containers and <font color="red">orchestrate</font> them so that all the containers can work together
-
运行一个镜像(第一种容器)
注意,我本地暂时还没有这个镜像。
请注意截图里面的1-4信息,它解释发生了什么。
图片.png我们这里基于hello-world镜像运行在容器里面的进程很快就结束了(信息输出来以后就结束了),由于没有进程了,所以容器也会销毁:
Checking for Running Containers -
打印所有状态的容器
就上面那个例子来说,我们可以打印所有状态的容器
图片.png
也可以使用下面命令查看所有容器状态:
yinbodotcc@yay:~$ sudo docker ps -a
-
运行Nginx(第二种容器)
6.1 初试
图片.png注意,当你运行时,容器是在Foreground运行的,监听容器的80端口Http请求,但不是我们主机的80端口。你这时需要CTRL+C才能关闭这个容器
6.2 用Detached模式在Background长期运行
publishes port 80(冒号前面部分) inside the container to port 80 on the host(冒号后面的端口号):
图片.png
上图输出了这个容器的unique ID。我们现在可以再次查看running中的容器:
图片.png
此时可以试着访问这个Web Server:
图片.png
说明:
When requests come in to port 80 on the host now, they will be routed to the container, and the
response will come from the Nginx process running inside the container
7 交互式容器(第三种容器)
只要你通过Docker CLI连接它,它就处于alive状态,这种场景下就如同远程连接到一个a separate machine上。
接下来,我们要运行一个交互式Ubuntu容器:

上图可以看到我们在其中执行了一些unix命令。
注意,我们在这个Ubuntu终端输入的命令,比如apt-get update只是对这个容器生效,不会对Image产生影响,即当我们输入exit时,容器就会停止,修改不会被保存的:

Application containers 不会像 VMs or physical servers那样被对待—你一般不会连接到一个运行的容器上解决一个问题或者给OS打补丁。容器代价很小,你一般会更新镜像,停止旧容器,并重新创建一个新容器。
小结:
The foundations of Docker are very simple—applications are packaged into images, images are used to run containers on the Docker server, and the Docker client manages the containers。
一些命令总结:
| 命令类型 | 命令 | 说明 |
|---|---|---|
| 查看运行中的容器 | docker ps | 默认是查看运行中的容器, -a选项表示查看所有状态的容器 |
| 启动容器 | docker run |
-t 让docker分配一个伪终端并绑定到容器的标准输入上; -i 则让容器的标准输入保持打开; -d 作用:run a service in the background(比如启动python自带的web服务器SimpleHTTPServer: $ docker run -d -p 1234:1234 python:2.7 python -m SimpleHTTPServer 1234)。 -m 限制内存大小,达到内存限制的容器过段时间后就会被系统杀死(注意python那个例子里面的-m不是这个意思,那时python启动SimpleHTTPServer服务命令中的一部分) eg,docker run -t -i ubuntu:14.04 /bin/bash可以开启交互式命令行 eg, docker run -it --rm ubuntu:14.04 bash 在退出容器时会自动删除 |
| 在运行的容器中执行命令 | docker exec -it 容器名称 /bin/bash | -it就是-i -t |
| 删除容器 | docker rm 容器id | 这个命令可以删除所有容器(其中-V可以删除volume): $ docker rm -v $(docker ps -aq) |
| 查看下载的镜像 | docker images | |
| 删除下载的镜像 | sudo docker rmi hello-world | |
| 停止容器 | sudo docker stop | 用下面这个命令可以停止所有的容器: yinbodotcc@yay:~$ docker stop $(docker ps -q) |
容器生命周期命令示例
- create+start
yinbodotcc@yay:~$ docker create -P --expose=1234 python:2.7 python -m SimpleHTTPServer 1234
6c703306a78c9a73b4eed720c6c5853e2badd54cdd0ee848bd90e3b5c08b4aa5
yinbodotcc@yay:~$ docker start 6c70
6c70
yinbodotcc@yay:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6c703306a78c python:2.7 "python -m SimpleHTT…" 47 seconds ago Up 9 seconds 0.0.0.0:32768->1234/tcp serene_allen
cd59e08afb06 python:2.7 "python -m SimpleHTT…" 37 minutes ago Up 37 minutes 0.0.0.0:1234->1234/tcp hopeful_nash
51b54b87ba23 jenkins "/bin/tini -- /usr/l…" 6 hours ago Up About an hour 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins_master
- stop
yinbodotcc@yay:~$ docker stop 6c70
6c70
yinbodotcc@yay:~$ docker stop cd59
cd59
- restart
yinbodotcc@yay:~$ docker restart 6c70
6c70
- rm
yinbodotcc@yay:~$ docker rm cd59
cd59
yinbodotcc@yay:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6c703306a78c python:2.7 "python -m SimpleHTT…" 3 minutes ago Up 12 seconds 0.0.0.0:32769->1234/tcp serene_allen
51b54b87ba23 jenkins "/bin/tini -- /usr/l…" 6 hours ago Up About an hour 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins_master
yinbodotcc@yay:~$
5.直接使用docker run
yinbodotcc@yay:~$ docker run -d -p 1234:1234 python:2.7 python -m SimpleHTTPServer 1234
下面贴出我终端上完整安装Docker-ce的过程:
yay@yay-ThinkPad-T470:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak[sudo] yay 的密码:
yay@yay-ThinkPad-T470:~$ sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
yay@yay-ThinkPad-T470:~$ sudo apt update
获取:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
命中:2 https://download.sublimetext.com apt/stable/ InRelease
获取:3 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [651 kB]
错误:4 http://cn.mirrors.ustc.edu.cn/ubuntu bionic InRelease
连接失败 [IP: 202.141.176.110 80]
错误:5 http://cn.mirrors.ustc.edu.cn/ubuntu bionic-updates InRelease
连接失败 [IP: 202.141.176.110 80]
获取:6 http://security.ubuntu.com/ubuntu bionic-security/main i386 Packages [442 kB]
错误:7 http://cn.mirrors.ustc.edu.cn/ubuntu bionic-backports InRelease
连接失败 [IP: 202.141.176.110 80]
获取:8 http://security.ubuntu.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [38.5 kB]
获取:9 http://security.ubuntu.com/ubuntu bionic-security/main DEP-11 48x48 Icons [17.6 kB]
获取:10 http://security.ubuntu.com/ubuntu bionic-security/main DEP-11 64x64 Icons [41.5 kB]
获取:11 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [649 kB]
获取:12 http://security.ubuntu.com/ubuntu bionic-security/universe i386 Packages [617 kB]
获取:13 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 DEP-11 Metadata [42.1 kB]
获取:14 http://security.ubuntu.com/ubuntu bionic-security/universe DEP-11 48x48 Icons [16.4 kB]
获取:15 http://security.ubuntu.com/ubuntu bionic-security/universe DEP-11 64x64 Icons [100 kB]
获取:16 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 DEP-11 Metadata [2,464 B]
已下载 2,706 kB,耗时 2分 50秒 (15.9 kB/s)
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有 190 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic-updates/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic-backports/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
yay@yay-ThinkPad-T470:~$ sudo apt install apt-transport-https ca-certificates software-properties-common curl
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
apt-transport-https 已经是最新版 (1.6.12)。
ca-certificates 已经是最新版 (20180409)。
ca-certificates 已设置为手动安装。
software-properties-common 已经是最新版 (0.96.24.32.9)。
software-properties-common 已设置为手动安装。
将会同时安装下列软件:
libcurl4
下列【新】软件包将被安装:
curl libcurl4
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 190 个软件包未被升级。
需要下载 373 kB 的归档。
解压缩后会消耗 1,038 kB 的额外空间。
您希望继续执行吗? [Y/n] Y
获取:1 http://security.ubuntu.com/ubuntu bionic-security/main amd64 libcurl4 amd64 7.58.0-2ubuntu3.8 [214 kB]
获取:2 http://security.ubuntu.com/ubuntu bionic-security/main amd64 curl amd64 7.58.0-2ubuntu3.8 [159 kB]
已下载 373 kB,耗时 3秒 (133 kB/s)
正在选中未选择的软件包 libcurl4:amd64。
(正在读取数据库 ... 系统当前共安装有 128789 个文件和目录。)
正准备解包 .../libcurl4_7.58.0-2ubuntu3.8_amd64.deb ...
正在解包 libcurl4:amd64 (7.58.0-2ubuntu3.8) ...
正在选中未选择的软件包 curl。
正准备解包 .../curl_7.58.0-2ubuntu3.8_amd64.deb ...
正在解包 curl (7.58.0-2ubuntu3.8) ...
正在设置 libcurl4:amd64 (7.58.0-2ubuntu3.8) ...
正在处理用于 libc-bin (2.27-3ubuntu1) 的触发器 ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在设置 curl (7.58.0-2ubuntu3.8) ...
yay@yay-ThinkPad-T470:~$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
OK
yay@yay-ThinkPad-T470:~$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
> $(lsb_release -cs) stable"
错误:1 http://cn.mirrors.ustc.edu.cn/ubuntu bionic InRelease
连接失败 [IP: 202.141.176.110 80]
命中:2 http://security.ubuntu.com/ubuntu bionic-security InRelease
命中:3 https://download.sublimetext.com apt/stable/ InRelease
错误:4 http://cn.mirrors.ustc.edu.cn/ubuntu bionic-updates InRelease
连接失败 [IP: 202.141.176.110 80]
获取:5 https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu bionic InRelease [64.4 kB]
获取:6 https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu bionic/stable amd64 Packages [10.3 kB]
错误:7 http://cn.mirrors.ustc.edu.cn/ubuntu bionic-backports InRelease
连接失败 [IP: 202.141.176.110 80]
已下载 74.7 kB,耗时 9秒 (8,541 B/s)
正在读取软件包列表... 完成
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic-updates/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic-backports/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
yay@yay-ThinkPad-T470:~$ sudo apt update
命中:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
命中:2 https://download.sublimetext.com apt/stable/ InRelease
错误:3 https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu bionic InRelease
Could not wait for server fd - select (11: 资源暂时不可用) [IP: 2001:da8:d800:95::110 443]
错误:4 http://cn.mirrors.ustc.edu.cn/ubuntu bionic InRelease
连接失败 [IP: 202.141.176.110 80]
错误:5 http://cn.mirrors.ustc.edu.cn/ubuntu bionic-updates InRelease
连接失败 [IP: 202.141.176.110 80]
错误:6 http://cn.mirrors.ustc.edu.cn/ubuntu bionic-backports InRelease
连接失败 [IP: 202.141.176.110 80]
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有 190 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic-updates/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic-backports/InRelease 连接失败 [IP: 202.141.176.110 80]
W: 无法下载 https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/dists/bionic/InRelease Could not wait for server fd - select (11: 资源暂时不可用) [IP: 2001:da8:d800:95::110 443]
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
yay@yay-ThinkPad-T470:~$ sudo apt install docker-ce
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
containerd.io docker-ce-cli
推荐安装:
aufs-tools cgroupfs-mount | cgroup-lite git pigz
下列【新】软件包将被安装:
containerd.io docker-ce docker-ce-cli
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 190 个软件包未被升级。
需要下载 85.4 MB 的归档。
解压缩后会消耗 384 MB 的额外空间。
您希望继续执行吗? [Y/n] Y
获取:1 https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu bionic/stable amd64 containerd.io amd64 1.2.10-3 [20.0 MB]
获取:2 https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu bionic/stable amd64 docker-ce-cli amd64 5:19.03.6~3-0~ubuntu-bionic [42.5 MB]
获取:3 https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu bionic/stable amd64 docker-ce amd64 5:19.03.6~3-0~ubuntu-bionic [22.9 MB]
已下载 85.4 MB,耗时 55秒 (1,565 kB/s)
正在选中未选择的软件包 containerd.io。
(正在读取数据库 ... 系统当前共安装有 128802 个文件和目录。)
正准备解包 .../containerd.io_1.2.10-3_amd64.deb ...
正在解包 containerd.io (1.2.10-3) ...
正在选中未选择的软件包 docker-ce-cli。
正准备解包 .../docker-ce-cli_5%3a19.03.6~3-0~ubuntu-bionic_amd64.deb ...
正在解包 docker-ce-cli (5:19.03.6~3-0~ubuntu-bionic) ...
正在选中未选择的软件包 docker-ce。
正准备解包 .../docker-ce_5%3a19.03.6~3-0~ubuntu-bionic_amd64.deb ...
正在解包 docker-ce (5:19.03.6~3-0~ubuntu-bionic) ...
正在设置 containerd.io (1.2.10-3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
正在处理用于 ureadahead (0.100.0-21) 的触发器 ...
ureadahead will be reprofiled on next reboot
正在处理用于 systemd (237-3ubuntu10.24) 的触发器 ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在设置 docker-ce-cli (5:19.03.6~3-0~ubuntu-bionic) ...
正在设置 docker-ce (5:19.03.6~3-0~ubuntu-bionic) ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
正在处理用于 ureadahead (0.100.0-21) 的触发器 ...
正在处理用于 systemd (237-3ubuntu10.24) 的触发器 ...
yay@yay-ThinkPad-T470:~$ sudo systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
yay@yay-ThinkPad-T470:~$ sudo systemctl start docker
yay@yay-ThinkPad-T470:~$ sudo groupadd docker
groupadd:“docker”组已存在
yay@yay-ThinkPad-T470:~$ sudo gpasswd -a $USERNAME docker
正在将用户“yay”加入到“docker”组中
yay@yay-ThinkPad-T470:~$ sudo service docker restart
yay@yay-ThinkPad-T470:~$ newgrp - docker
yay@yay-ThinkPad-T470:~$ docker version
Client: Docker Engine - Community
Version: 19.03.6
API version: 1.40
Go version: go1.12.16
Git commit: 369ce74a3c
Built: Thu Feb 13 01:27:49 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.6
API version: 1.40 (minimum version 1.12)
Go version: go1.12.16
Git commit: 369ce74a3c
Built: Thu Feb 13 01:26:21 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
//注意这里下载hello-world镜像失败,于是增加阿里镜像源
yay@yay-ThinkPad-T470:~$ sudo docker container run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
yay@yay-ThinkPad-T470:~$ mkdir /etc/docker
mkdir: cannot create directory '/etc/docker': File exists
yay@yay-ThinkPad-T470:~$ sudo mkdir /etc/docker
mkdir: 无法创建目录"/etc/docker": 文件已存在
yay@yay-ThinkPad-T470:~$ sudo touch /etc/docker/daemon.json
yay@yay-ThinkPad-T470:~$ sudo vi /etc/docker/daemon.json
/********
daemon.json内容如下:
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}
********/
yay@yay-ThinkPad-T470:~$ systemctl deamon-reload
Unknown operation deamon-reload.
yay@yay-ThinkPad-T470:~$ systemctl daemon-reload
yay@yay-ThinkPad-T470:~$ systemctl restart docker
yay@yay-ThinkPad-T470:~$ sudo docker container run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:fc6a51919cfeb2e6763f62b6d9e8815acbf7cd2e476ea353743570610737b752
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
yay@yay-ThinkPad-T470:~$
//不是用超级用户也能使用docker命令
yay@yay-ThinkPad-T470:~$ sudo groupadd docker
groupadd:“docker”组已存在
yay@yay-ThinkPad-T470:~$ sudo gpasswd -a ${USER} docker
正在将用户“yay”加入到“docker”组中
yay@yay-ThinkPad-T470:~$ sudo service docker restart
yay@yay-ThinkPad-T470:~$ sudo chmod a+rw /var/run/docker.sock
yay@yay-ThinkPad-T470:~$







