介绍
与之前的版本相比,新的CentOS 8版本引入了许多创新元素,一个重大变化是决定不再为Docker提供官方支持。 相反,RHE选择引入用于容器映像创建和管理的内置工具:buildah和podman。 这些工具与Docker兼容,但不需要服务器/客户端架构即可运行。万一您还没有准备好使用这些新工具,本教程将说明如何在CentOS 8上安装Docker。
先决条件
- CentOS 8的有效安装
- 具有sudo特权的用户帐户
- 终端访问
- DNF软件包安装程序(默认包含在CentOS 8中)
- 防火墙管理器已禁用
重要提示:不建议禁用关键安全功能。 但是CentOS 8中的防火墙管理器阻止了Docker容器内的DNS解析。 本教程包含有关如何禁用firewalld的说明。
使用DNF添加Docker Repository
CentOS 8使用YUM软件包管理器版本v4.0.4。 现在该版本使用DNF(已删除YUM)。
DNF是软件包管理器。 它会在Linux发行版上安装,执行更新并删除软件包。
注意:CentOS 8具有大大改进的软件管理系统。 DNF技术可提高性能,具有定义明确的API,并支持模块化内容,适用于云的AppStreams软件,容器工作负载和CI / CD。
使用DNF添加并启用官方Docker CE存储库。 在终端窗口中键入以下命令:
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
系统通知您已经成功检索了存储库
sudo dnf repolist -v
以下截图提供所有相关详细信息
要列出所有可用的docker-ce软件包,请输入:
dnf list docker-ce --showduplicates | sort -r
不幸的是,CentOS 8不支持container.id软件包的特定版本。 这意味着仅某些版本的docker-ce可用于安装。
在CentOS 8上安装Docker CE
一个有效的解决方案是使您的CentOS 8系统使用--nobest命令安装最符合条件的版本:
sudo dnf install docker-ce --nobest
如果仔细观察,您会看到安装跳过了不符合条件的最新版本的docker-ce。
启动并测试Docker
启用Docker
通过以下方式启用并启动Docker服务:
sudo systemctl enable --now docker
输出确认我们已经创建了symlink。
接下来,使用以下简短命令确认Docker是否处于活动状态并正在运行:
systemctl status docker
将用户添加到Docker用户组
使用以下命令将用户添加到docker组:
sudo usermod -aG docker $USER
id $USER
在CentOS 8上禁用Firewalld
如前所述,我们需要禁用dockerd才能在Docker容器中进行DNS解析。
一个简单的命令足以在CentOS 8中禁用防火墙:
sudo systemctl disable firewalld
输出确认该服务已被禁用。
此时,建议重新引导系统以使更改生效。
通过拉取测试容器映像来测试Docker安装
运行命令
docker run hello-world
至此您已在CentOS 8上成功安装并配置了Docker。
结论
通过遵循本教程,您现在应该在CentOS 8上可以正常工作的Docker安装。
CentOS 8的发行包括许多新功能,这些新功能提高了基于RHEL的操作系统的标准,并改善了整体用户体验。