Skip to main content

RHEL 8 安装 Docker Engine

另一篇文章的节选修改。
所用系统:Red Hat Enterprise Linux 8.6。

RHEL 并没有 Docker 包,相反 RedHat 希望你使用 Podman,但是支持还不够完善。

添加源

添加 Docker-ce 官方源(Centos 源,RHEL 源仅支持 s390x 架构):
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
国内可以使用阿里云源(Centos 源,RHEL 源仅支持 s390x 架构):
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

解决冲突

如果你安装了 Podman,请先删除 dnf remove podman
然后你并不能直接运行 dnf install docker-ce ,因为你会发现 containerd.io 和 runc 冲突。因为 containerd.io 包自带了 runc。
你可以:

  • 删除 buildah 包/ 删除 containers-common 包,删除会顺便帮你删除 runc;
  • 使用 --nobest 选项强制安装;
  • 手动安装最新可用的 containerd.io RPM 包;

如果你用不到 buildah 包,那么直接删除它 dnf remove podman buildah
然后你就可以直接安装 docker-ce 了,dnf install docker-ce

启用

启用并开机自启 Docker:
systemctl enable --now docker

可选:如果你不想老是 sudo,那么你可以将非 root 用户添加到 Docker 用户组,然后你就可以不需要 sudo 了。
sudo usermod -aG docker <用户名>


Kubernetes 支持(可选)

虽然 v1.24 之前的 Kubernetes 直接集成了 Docker 支持,但现在 Kubernetes 实现了 CRI (容器运行环境接口)  ,来支持各种各样的容器,但 Docker Engine 并没有实现 CRI,所以你现在需要使用其他东西来让 Docker Engine 和  Kubernetes 兼容。
更多信息请参阅:https://kubernetes.io/blog/2022/02/17/dockershim-faq/

这里我们使用 cri-dockerd 
访问 https://github.com/Mirantis/cri-dockerd 最下方即为安装脚本。

镜像加速(可选)

阿里云镜像加速器:https://help.aliyun.com/document_detail/60750.html
百度云镜像加速器:https://cloud.baidu.com/doc/CCE/s/Yjxppt74z#%E4%BD%BF%E7%94%A8dockerhub%E5%8A%A0%E9%80%9F%E5%99%A8
网易镜像:https://sf.163.com/help/documents/56918246390157312
DaoCloud 镜像站:https://www.daocloud.io/mirror



题外话

Docker CE 还是 Docker Engine

Docker 公司虽然产品很好但是并不赚钱,于是就想搞分级。
于是呢 Docker Engine 就改名为了 Docker CE, Docker Community Edition 社区开源免费版。
多推出了一个 Docker EE, Docker Enterprise Edition 企业付费版。
但是 Docker EE 在 2019 年 11 月 13 日被 Mirantis, Inc. 收购变成了 Mirantis Kubernetes Engine,所以 Docker EE 就不存在了。
于是 Docker CE 又改回了 Docker Engine。
后来又推出了 Docker Desktop 用于桌面使用,而 Docker Engine 专注于服务器。




参考