Docker容器技术与运维
上QQ阅读APP看书,第一时间看更新

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,只需选择新的版本安装即可。