CentOS8.4上使用DNF安装Docker服务 CentOS8.4上使用DNF安装Docker服务
什么是Docker?Docker是一个开源项目,它允许在容器内部创建和分发应用程序,容器是可以独立于主机系统轻松复制的标准化环境。
DNF是什么?DNF是软件包管理器。它会在Linux发行版上安装,执行更新并删除软件包。centos 8使用DNF软件包管理器版本v4.x。
本文将详细介绍在CentOS 8.4中使用DNF安装Docker服务。
一、查看当前CentOS 系统版本信息命令:lsb_release -a
或者命令:cat /etc/RedHat-release (适用于RedHat,CentOS)
二、检查CentOS 8中是否已安装了Podman
CentOS 8中安装Docker出现和Podman冲突,因此先检查CentOS 中是否已经安装了Podman,如图所示。
[root@centos-103 ~]# rpm -q podman
podman-3.0.1-6.module_el8.4.0 781 acf4c33b.x86_64
显示在CentOS 8 操作系统中已经安装Podman。可以删除Podman,执行如下命令:
dnf remove podman
CentOS 7开始,dnf成为了默认的软件包管理器,同时 yum 仍然是可用的。dnf 包管理器克服了yum包管理器的一些瓶颈,提升了用户体验,内存占用,依赖分析,运行速度等方面。dnf 使维护软件包组变得容易,并且能够自动解决依赖性问题。
可以查看dnf 版本:dnf --version
输出结果如下所示,CentOS 8使用dnf软件包管理器版本v4.4.2。
[root@centos-103 ~]# dnf --version
Failed to set locale, defaulting to C.UTF-8
4.4.2
Installed: dnf-0:4.4.2-11.el8.noarch at Thu Sep 30 03:47:37 2021
Built : CentOS Buildsys <bugs@centos.org> at Thu Mar 11 19:39:23 2021
Installed: rpm-0:4.14.3-13.el8.x86_64 at Thu Sep 30 03:46:03 2021
Built : CentOS Buildsys <bugs@centos.org> at Tue Feb 16 07:03:14 2021
列出已安装的软件包:
# dnf list installed
列出所有可安装的软件包:
dnf list available
三、使用DNF安装Docker使用DNF添加并启用官方Docker CE存储库。在终端窗口中输入以下命令:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
上图显示系统通知已经成功地检索了存储库。
使用如下命令查看DNF相关的存储库:
dnf repolist -v
该存储库包含docker-ce软件包的多个版本,要显示所有版本,我们可以运行:
dnf list docker-ce --showduplicates | sort -r
不幸的是,CentOS 8 不支持特定版本的container.id包。这意味着只有一些版本的docker-ce可用于安装。
跳过具有损坏依赖性的程序包,一个有效的解决方案是使您的CentOS 8系统使用以下--nobest命令安装最符合条件的版本。
使用如下命令行进行安装docker-ce:
dnf install docker-ce --nobest
安装的时候,出现了如下错误:problem with installed package buildah。
[root@centos-103 ~]# dnf install docker-ce --nobest
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:14:33 ago on Sun Oct 3 01:23:07 2021.
Error:
Problem: problem with installed package buildah-1.19.7-1.module_el8.4.0 781 acf4c33b.x86_64
- package buildah-1.19.7-1.module_el8.4.0 781 acf4c33b.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
- package buildah-1.21.4-2.module_el8.4.0 942 d25aada8.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
- package buildah-1.21.4-1.module_el8.4.0 886 c9a8d9ad.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
- package buildah-1.19.7-2.module_el8.4.0 830 8027e1c4.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
根据输出提示,添加--alowerasing 参数,如下所示:
dnf install docker-ce --nobest --allowerasing
如图所示,安装完成(最后显示Complete!)。
四、启动Dock服务
安装Docker之后, 使用以下systemctl命令启动并启用其服务。
systemctl start docker
systemctl enable docker
输入以下命令查看docker版本号:
[root@centos-103 ~]# docker --version
Docker version 20.10.8, build 3967b7d
五、验证并测试Docker CE服务执行如下命令,拉取并启动hello-world容器:
docker run hello-world
在上面的输出中看到的信息,可确认Docker引擎已在CentOS 8 服务器上正确安装。
查看docker服务运行状态:
systemctl status docker
另外,可以运行如下docker命令:
docker images 查看docker镜像;
docker ps 查看正在运行的容器;
另外,我们需要在CentOS 8 上禁用防火墙(firewalld),让docker容器中的DNS解析服务正常工作。执行如下命令即可:
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
如下输出表示firewalld 服务已经被禁用了。
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com