翻译自 Get Docker CE for CentOS | Docker Docs,以 Docker 官方文档 为准
点击查看我的博客原文
安装前的准备
系统要求
- 官方推荐使用 CentOS 7 的维护版本,已经归档的版本不受支持或未经测试
- 需要启用
centos-extras
repository。在 CentOS 7 中这个仓库是默认启用的,如果之前有将其禁用,则需要重新启用 - 推荐使用
overlay2
作为 Docker 的存储驱动
卸载旧版本
旧版本的 Docker 在 CentOS 中的包名为docker
或docker-engine
。如果之前安装了 Docker 的旧版本,需要先卸载旧版 Docker 及相关依赖:
> sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
若yum
提示卸载成功或没有找到相关包,即可进行下一步操作。
注意:/var/lib/docker/
目录下的内容,包括镜像、容器、卷组、网络等文件将被保留。Docker CE 的新包名为docker-ce
。
安装 Docker CE
有以下三种方法安装 Docker CE,可根据实际需要选择:
- 建立 Docker 仓库:安装过程及后续的更新方便,Docker 官方推荐。
- 下载 RPM 包手动安装:手动管理更新。适合离线环境。
- 通过安装脚本自动安装:适合测试及开发环境。
方法 1:建立 Docker 仓库
在首次安装 Docker CE 前需要建立 Docker repository,之后可通过仓库安装并更新 Docker。
建立仓库
1.安装所需软件包。yum-utils
提供了yum-config-manager
工具,存储驱动devicemapper
则依赖于device-mapper-persistent-data
和lvm2
:
> sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
2.使用以下命令建立stable
版本的 repository:
> sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3.可选:启用edge
和test
仓库。这些仓库包含在docker.repo
文件中,但默认是禁用的。可以将它们与stable
仓库共同启用。
> sudo yum-config-manager --enable docker-ce-edge
> sudo yum-config-manager --enable docker-ce-test
使用带--disable
参数的yum-config-manager
命令即可禁用edge
或test
仓库,使用--enable
参数则会重新启用。例如下面的命令将禁用edge
仓库:
> sudo yum-config-manager --disable docker-ce-edge
从 Docker
17.06
版本开始,stable
仓库的 releases 也会推送至edge
及test
仓库中。
点击此处查看 Docker 官方关于stable
和edge
的说明。
安装 Docker CE
1.使用以下命令安装最新版 Docker CE:
> sudo yum install docker-ce
如果提示是否接受 GPG 密钥,则需验证密钥指纹是否符合下面的内容,若符合即可点击 accept 继续安装:
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
如果启用了多个 Docker 仓库,并且在
yum install
或yum update
命令中没有指明版本,则会安装所有仓库中版本号最新的 Docker。
2.要安装指定版本的 Docker CE,则需要从仓库中列出所有可用的版本,再根据需要选择安装:
> yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 18.09.0.ce-1.el7.centos docker-ce-stable
此时安装包名的格式为docker-ce-
。例如安装18.03.0
版本的 Docker CE:
> sudo yum install docker-ce-18.03.0.ce
此时 Docker 应该已经安装完成,但还没有启动。新的用户组docker
也已创建,目前为空。
3.启动 Docker:
> sudo systemctl start docker
4.运行hello-world
镜像以验证 Docker 是否正确安装:
> sudo docker run hello-world
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 CE
如需升级 Docker CE,则可根据上述安装教程,选择安装最新版docker-ce
,即可完成升级。
方法 2:下载 RPM 包手动安装
安装 Docker CE
如果无法使用 Docker 仓库,可以下载.rpm
安装包手动安装 Docker CE。
1.前往https://download.docker.com/linux/centos/7/x86_64/stable/Packages/,下载对应版本的 RPM 安装包。
2.使用yum
命令安装 RPM 包:
> sudo yum install /path/to/package.rpm
3.启动 Docker:
> sudo systemctl start docker
4.运行hello-world
镜像以验证 Docker 是否正确安装:
> sudo docker run hello-world
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 CE
如需升级,则可下载新版本的 RPM 安装包,使用yum upgrade
命令升级:
> sudo yum -y upgrade /path/to/package.rpm
方法 3:通过安装脚本自动安装
通过 Docker 提供的一键安装脚本可以在开发环境中快速安装 Docker CE,且无需交互。get.docker.com 及 test.docker.com 分别对应edge
和test
版本,脚本源码存放在 docker-install 仓库 中。
Docker 官方不推荐在生产环境中使用安装脚本
下面的示例将使用 get.docker.com 提供的脚本安装 Docker CE 的最新发布版本。如果要安装最新测试版本,只需将脚本替换为 test.docker.com,并将下面示例命令中的get
替换为test
:
> curl -fsSL https://get.docker.com -o get-docker.sh
> sudo sh get-docker.sh
如果需要让非root
用户使用 Docker,则使用以下命令将用户添加至docker
用户组:
> sudo usermod -aG docker your-user
注销并重新登录,即可生效。之后启动 Docker:
> sudo systemctl start docker
运行hello-world
镜像以验证 Docker 是否正确安装:
> sudo docker run hello-world
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 CE
1. 卸载 Docker 安装包
> sudo yum remote docker-ce
2. 删除相关文件
主机上的镜像、容器、卷组以及自定义的配置文件需要手动删除:
> sudo rm -rf /var/lib/docker
参考资料
- Get Docker CE for CentOS | Docker Docs
- Post-installation steps for Linux | Docker Docs
- Docker Docs