CentOS 8安装Docker.how to install Docker on centos8.fix error requires containerd.io 1.2.2-3



CentOS 8安装Docker.how to install Docker on centos8.fix error requires containerd.io 1.2.2-3

CentOS 8安装Docker.how to install Docker on centos8.fix error requires containerd.io 1.2.2-3

CentOS 8已经发布一段时间了,但Docker官方安装文档尚未更新到支持CentOS 8,直接按照CentOS 7安装文档进行安装中途会遇到几个问题,下面我们就来解决并梳理一下整个安装过程和可能遇到的几个问题。

1. 安装依赖包和设置Repository
首先按照Docker官方文档安装依赖包和设置Repository.
# Install required packages
sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
# set up the stable repository
sudo yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo

2. 安装Docker并修复containerd.io版本错误
完成上述步骤后,如果直接执行官方文档的”sudo yum install docker-ce docker-ce-cli containerd.io” 指令会出现一个错误,类似”Problem: package docker-ce-3:19.03.5-3.el7.x86_64 requires containerd.io = 1.2.2-3, but none of the providers can be installed …”

由错误消息提示可知,安装要求 containerd.io 版本要大于 1.2.2-3,我们可以尝试安装最新版本。根据上一步设置的repository地址,我们可在其中找到最新版的containerd.io,截止发稿最新版为 containerd.io-1.2.6-3.3

# 安装最新版containerd.io
sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
# 继续安装 docker-ce docker-ce-cli
sudo yum install docker-ce docker-ce-cli

至此Docker已成功安装,下面启动Docker服务并设置当前用户权限。
sudo systemctl start docker && sudo systemctl enable docker.service
sudo gpasswd -a $(whoami) docker
用户权限修改完毕后,需要重新登录当前用户。

3. 修复 docker container-seliux error
成功安装Docker后,如果 container-selinux版本较低可能会在创建容器时遇到如下错误 docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:430: container init caused “write /proc/self/attr/keycreate: permission denied””: unknown.

这个问题在技术社区中目前存在两个主流的解决方案:
更新 container-selinux 到最新版(较为稳妥)
修改现有 container-selinux 配置(简单粗暴)

# 查看当前已安装container-selinux版本
rpm -qa | grep container-selinux
对比当前已安装版本与官方最新版本,确保已安装或更新到最新版,截止到发稿最新版本为 container-selinux-2.124.0-1.module_el8.1.0+272+3e64ee36.noarch.rpm,且该版本已修复以上问题。
除了更新到 container-selinux 最新版之外,也可以直接修改 container-selinux 配置来修复上述问题,但此方案存在一定安全隐患,不建议使用,想尝试的小伙伴可以参考文末的视频教程,此处不再赘述。

推荐大家按照视频教程,逐步操作,中间遇到任何问题可以在视频下发留言。也可以加入TG交流群咨询 https://t.me/colinchang

Comments are closed.