一、前提条件
1、操作系统要求
- CentOS 7或更高版本
centos-extras
仓库必须处于启用状态,该仓库默认启用,但如果您禁用了该仓库,请按照wiki.centos.org/AdditionalR… 中的描述重新启用。overlay2
建议使用存储驱动程序。
2、卸载旧版本
较旧的Docker版本称为docker
或docker-engine
。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
需要注意的是,执行该命令只会卸载Docker本身,而不会删除Docker存储的文件,例如镜像、容器、卷以及网络文件等。这些文件保存在/var/lib/docker
目录中,需要手动删除。
二、开始安装
有三种安装方式,可以根据需要以不同的方式安装Docker Engine:
- 设置Docker的仓库并从仓库中下载进行安装。这是官方推荐的方法。
- 可以下载并手动安装 RPM软件包, 并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用。
- 在测试和开发环境中,一些用户选择使用自动
便利脚本
来安装Docker。脚本地址:https://docs.docker.com/engine/install/centos/#install-using-the-convenience-script
1、使用仓库安装
安装仓库
安装yum-utils
软件包(提供yum-config-manager
实用程序)并设置稳定的仓库。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
[可选] 启用nightly或者test仓库
执行如下命令,启用nightly
及test
仓库。nightly/test仓库其实也包含在了docker.repo
文件中,但默认是禁用的,可使用以下命令来启用。
sudo yum-config-manager --enable docker-ce-nightly # 启用nightly仓库
sudo yum-config-manager --enable docker-ce-test # 启用test仓库
如需再次禁用,可加上--disable
标签。例如,执行如下命令即可禁用nightly仓库。
$ sudo yum-config-manager --disable docker-ce-nightly
安装Docker Engine
执行如下命令即可安装最新版本的Docker Engine和容器,安装完成后,会自动创建一个
docker
组,但是没有用户sudo yum install docker-ce docker-ce-cli containerd.io
安装过程中的问题:
Error: Package: containerd.io-1.2.13-3.2.el7.x86_64 (docker-ce-stable) Requires: container-selinux >= 2:2.74 Error: Package: 3:docker-ce-19.03.8-3.el7.x86_64 (docker-ce-stable) Requires: container-selinux >= 2:2.74
解决办法:
下载container-selinux:
wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.107-3.el7.noarch.rpm
安装container-selinux(使用–nodeps --force跳过依赖检查):
rpm -ivh container-selinux-2.107-3.el7.noarch.rpm --nodeps --force
完成之后即可重新执行安装
docker-ce
的命令
在生产环境中,可能需要指定想要安装的版本,此时可使用如下命令列出当前可用的Docker版本
$ yum list docker-ce --showduplicates | sort -r 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.1.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
使用如下命令安装想要的版本:
# 版本示例:docker-ce-18.09.1 $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动Docker
sudo systemctl start docker
通过运行
hello-world
镜像来验证是否正确安装了Docker Engine$ sudo docker run hello-world
这样,Docker将会下载测试镜像,并使用该镜像启动一个容器。
至此,Docker Engine已经安装并运行成功,但是需要使用
sudo
来运行Docker命令。后续会在单独写一下如何配置不需要使用sudo
命令来操作docker,当然官网上都是有的,也可以自行查阅哈
2、使用软件包安装
如果无法使用Docker的仓库安装Docker,则可以下载该.rpm
发行版的文件并手动安装。每次要升级Docker Engine时,都需要下载一个新文件
下载软件包
访问https://download.docker.com/linux/centos/ 并选择您的CentOS版本。然后浏览
x86_64/stable/Packages/
并下载.rpm
您要安装的Docker版本的文件安装Docker Engine,将下面的路径更改为您下载Docker软件包的路径
$ sudo yum install /path/to/package.rpm
启动Docker
sudo systemctl start docker
通过运行
hello-world
镜像来验证是否正确安装了Docker Engine$ sudo docker run hello-world
3、使用便捷脚本安装
Docker在get.docker.com 和test.docker.com上提供了方便脚本,用于将Docker Engine-Community的edge版本和test版本快速且非交互地安装到开发环境中。脚本的源代码在 docker-install
仓库中。 不建议在生产环境中使用这些脚本
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
一切就OK了。
三、参考文档
- https://docs.docker.com/engine/install/centos/
- https://github.com/docker/docker-install
有任何问题欢迎关注公众号【Hugh的白板】私信我,一起探讨,一起学习