
1.5.4 使用软件仓库安装Docker CE
在新的CentOS 7主机上首次安装Docker CE之前,需要设置yum的Docker软件仓库,以便从该仓库安装和更新Docker。
1.设置软件仓库
(1)执行如下命令安装必要的包,其中yum-utils提供yum-config-manager工具用于管理yum工具的软件安装源,而devicemapper存储驱动程序需要device-mapper-persistent-data和lvm2的支持。
yum install -y yum-utils device-mapper-persistent-data lvm2
(2)设置Docker CE稳定版的仓库。
考虑到国内访问Docker官方镜像不方便,这里提供阿里的镜像仓库源,执行以下命令:
yum-config-manager --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果使用Docker官方的仓库源,则要执行以下命令:
yum-config-manager --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
上述命令将在/etc/yum.repos.d目录下创建一个名为docker.repo的文件。该文件中定义了多个仓库的地址,默认只有稳定版被启用。如果要启用每日构建版nightly和测试版test仓库,则要执行以下命令以启用相应的选项:
yum-config-manager --enable docker-ce-nightly yum-config-manager --enable docker-ce-test
要禁用仓库,使用--disable选项进行相应的设置即可。
2.安装Docker CE
最简单的方法是执行以下命令安装最新版本的Docker CE和containerd:
yum install docker-ce docker-ce-cli containerd.io
在生产环境中可能需要安装指定版本的Docker,而不是最新版本。具体方法是首先执行如下命令,列出可用的Docker版本:
yum list docker-ce --showduplicates | sort -r
其中sort-r命令表示将结果按版本由高到低排序。这里给出部分结果:
docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.3-3.el7 @docker-ce-stable docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
第1列是软件包名称,第2列是版本字符串,第3列是仓库名称,表示软件包存储的位置。
然后使用以下命令安装特定版本的Docker:
yum install docker-ce-<版本字符串> docker-ce-cli-<版本字符串> containerd.io
特定版本的Docker由全称包名指定,全称包名由包名(docker-ce)加上版本字符串中冒号(:)到连字符(-)之间的部分组成,如docker-ce-18.09.1、docker-ce-18.06.0.ce等。
3.启动Docker并进行测试
使用以上方法安装Docker之后,会创建一个名为docker的用户组,但其中没有添加任何用户,并且没有启动Docker。
执行以下命令启动Docker:
systemctl start docker
接下来通过运行hello-world镜像来验证Docker CE是否已经正常安装:
[root@host-a ~]# docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535 Status: Downloaded newer image for hello-world:latest Hello from Docker! (以下省略)
输出“Hello from Docker!”这个消息就表明安装的Docker可以正常工作了。为了生成此消息,Docker采取了以下步骤。
(1)Docker客户端联系Docker守护进程。
(2)Docker守护进程从Docker Hub中拉取了“hello-world”镜像。
(3)Docker守护进程基于该镜像创建了一个新容器,该容器运行可执行文件并输出当前正在阅读的消息。
(4)Docker守护进程将该消息流式传输到Docker客户端,由它将此消息发送到用户终端。
4.升级Docker
升级Docker CE,只需选择新的版本安装即可。