Red Hat 把 Podman 作为 Docker 的替代品发行给用户,但两者同时安装会出现一些问题。
- Docker CE 安装需要 containerd.io 由 Docker 提供
- 来自 Docker 的 containerd.io 包括 runc (下级容器执行引擎)
- 该 runc 与 Podman 和 Skopeo 所需的 RHEL / CentOS 本机 runc 软件包冲突。
Docker 团队试图解决:https://github.com/docker/containerd-packaging/pull/231
要解决此问题,诀窍是手动安装 Docker containerd.io 软件包,排除有问题的 runc,然后安装Docker CE。
Docker 将使用 RHEL 平台上的 runc (实际上两者相同),并且不会与 Podman,Skopeo 等所需的任何软件包发生冲突。
# 1. Podman
sudo dnf install podman
# 2. 检查可用
sudo podman run hello-world
# 3. 安装 docker repo,并禁用,防止和 RH 的冲突
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf config-manager --set-disabled docker-ce-stable
# 4. rpm 方式安装,不包括 runc
sudo rpm --install --nodeps --replacefiles --excludepath=/usr/bin/runc https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.4.9-3.1.el8.x86_64.rpm
# 5. 安装 docker ce
sudo dnf install --enablerepo=docker-ce-stable docker-ce
# 6. 启动并测试
sudo systemctl enable --now docker
sudo docker run hello-world
sudo podman run hello-world
sudo dnf update