Centos8安装Docker报错解决方案
在Centos8中,默认安装的的容器管理工具是使用了Podman,Podman的设计理念非常好,整合了pod思想,用户可以直接启动容器而不是像Docker那样通过守护进程启动,这样也会提高安全性。但是现在Podman国内使用的人数并不是很多,还会有一些问题出现。所以在Centos8上先将Podman替换为Docker。在Centos8下安装Docker会有container.io的依赖问题,现在来解决一下。
但是要注意的是,在Centos8中使用Docker启动容器的话,容器内默认的网络是不通的,需要简单的配置。在这一篇文章中Centos8安装Docker后容器内无法访问网络提供了解决办法。
简要概括
思路是卸载podman
,安装docker-ce
的repo源,解决依赖,安装完成,启动服务就是这样了。
卸载podman
dnf remove -y podman
安装docker-ce
官方源
首先我们添加docker-ce
官方的源,这样才能用到最新版本的Docker。
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
之后更新一下列表和依赖
dnf update -y
如果在update过程中提示添加GPG密钥,yes通过即可。稍稍等待一会吧。
解决依赖问题
如果安装完官方源后,直接安装docker-ce
时containerd.io
这个包会出现版本依赖的问题,如下:
1 | [root@DELL ~]dnf install docker-ce docker-ce-cli |
解决方案有两个,要么安装老版本的docker-ce
,要么升级container.io
。我肯定选择第二个,问题形成的原因也很简单,官方的repo源里面的container.io
版本比较老。我们去下载一个符合版本要求的container.io
包。
dnf install -y https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
一条毒奶粉(dnf)命令直接安装目前最新的container.io
包。哦对了,该包来源于Docker官方,下载的是x86_64
架构的包。如果你是其他平台,请到这儿里自己来选吧。
安装docker-ce
container.io
的依赖问题已经解决完了,接下来直接安装就好了!
dnf install -y docker-ce docker-ce-cli
开启服务
systemctl enable --now docker
成功安装后开启docker守护进程,尝试一下启动一个容器。没有问题的话就是安装成功了。但是要注意的是,如果你发现在容器内部无法访问网络,那么你可以尝试一下用firewalld开启你的IP地址转发功能,具体操作和解决方案在这里Centos8安装Docker后容器内无法访问网络。
我是一名Linux初学者,如果你与我一样喜欢折腾,喜欢Linux,那么请加入我的电报群https://t.me/yeefire_blog,在这里畅所欲言,共同学习进步。