要安装 Docker CE(社区)版本,推荐使用 CentOS 7,使用`overlay2`存储驱动程序。 ### ## 卸载旧版本 ### 旧版本的 Docker 叫`docker`或者`docker-engine`,现在的版本被称为`docker-ce`,如果之前安装过,则先卸载掉之前的版本: ### ``` $ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine ``` ### ## 安装 Docker-CE ### 要安装 Docker 有多种方法,大多数用户会设置 Docker 的存储仓库来进行安装,这种方式可以简化我们的安装和升级,当然也推荐使用这种方式。 ### 但是如果你的服务器无法访问互联网则可以使用手动下载 RPM 安装包进行安装,如果你要使用这种方式安装,可以在页面[https://download.docker.com/linux/centos/7/x86\_64/stable/Packages/](https://download.docker.com/linux/centos/7/x86_64/stable/Packages/)下载自己想要安装的`.rpm`文件然后直接安装即可。 ### 我们这里通过在线方式进行安装,首先安装仓库,先安装一些依赖包,其中`yum-utils`提供了`yum-config-manager`的一些实用的功能: ### ``` $ sudo yum install -y yum-utils ``` ### 然后用下面的命令添加`stable`版本的 docker 仓库: ### ``` $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo ``` ### 添加完成后就可以安装了,如果要安装最新版本,直接执行下面的命令即可: ### ``` $ yum install docker-ce docker-ce-cli containerd.io ``` ### 如果要安装指定的版本,可以通过如下命令来获取可安装的版本: ### ``` $ yum list docker-ce --showduplicates | sort -r * updates: mirrors.tuna.tsinghua.edu.cn Loading mirror speeds from cached hostfile Loaded plugins: fastestmirror, langpacks * extras: mirrors.huaweicloud.com docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable ...... docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable ...... docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable ``` ### 该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)开始,直至第一个连字符,并用连字符(-)分隔 )。 比如这里我们来安装 docker-ce-18.09.9 版本: ### ``` $ sudo yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io -y ``` ### 安装完成,但是还没有启动,由于我这里的磁盘空间不大,所以需要更改下 Docker 的根目录,将默认的`/var/lib/docker`更改为`/data/docker`目录,添加如下配置文件: ### ``` $ mkdir -p /etc/docker $ vi /etc/docker/daemon.json { "registry-mirrors" : [ "https://ot2k4d59.mirror.aliyuncs.com/" ], "graph": "/data/docker" } ``` ### > 镜像加速器 > 使用加速器可以提升获取 Docker 官方镜像的速度,建议注册阿里云帐号,使用阿里云提供的镜像加速服务,地址:https://cr.console.aliyun.com/cn-beijing/instances/mirrors。 ### 然后执行下面的命令启动 docker: ### ``` # 设置为开机启动 $ systemctl enable docker $ systemctl daemon-reload # 启动 docker $ systemctl start docker ``` ### 启动成功后,可以通过如下命令查看 Docker 相关信息: ### ``` $ docker info docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 18.09.9 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: false Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339 runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 3.10.0-327.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 7.64GiB Name: pnhmltdr ID: VIBG:JCTE:KBVO:ETXD:OZH4:SXCH:MA7Y:YFFB:KQEX:OLAM:I25P:F2TM Docker Root Dir: /data/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Registry Mirrors: https://ot2k4d59.mirror.aliyuncs.com/ Live Restore Enabled: false Product License: Community Engine ``` ### 可以看到安装的版本是 18.09.9,默认的存储驱动程序是`overlay2`,而且`Root Dir`也已经是我们更改后的目录了。 ### ## 测试 ### Docker 启动成功后,我们可以使用下面的命令来运行一个测试容器: ### ``` $ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f 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/ ``` ### 看到如上的一些信息打印出来证明我们的 Docker 就已经安装成功了。