直接给结论:可以装,而且官方支持。
欧拉(openEuler)是华为开源的服务器操作系统,内核基于 Linux。Docker 的核心依赖就是 Linux 内核特性(如 cgroups、namespace),只要内核版本够新,架构兼容,跑 Docker 完全没问题。
下面分几种情况说清楚怎么弄,以及你可能踩的坑。
1. 为什么能装?
openEuler 默认集成了 containerd 和 Kubernetes 相关组件,对容器化支持非常原生。它不是那种“阉割版”系统,而是为了云原生优化的。所以,Docker CE(社区版)或者 Docker EE(企业版)都能在上面跑。
2. 怎么装?(推荐方式)
方式一:用 yum/dnf 安装(最稳,适合生产环境)
openEuler 的软件源里通常就有 docker-ce 包。这是最省事的方法,依赖关系会自动处理。
# 更新源
sudo dnf makecache
# 安装 docker-ce
sudo dnf install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
如果 dnf 找不到包,可能是没配置好第三方源。你可以去 Docker 官方文档查 openEuler 对应的 repo 配置,或者直接用华为云的镜像源提速。
方式二:从源码或二进制包编译安装(适合极客或特殊需求)
如果你不想依赖系统包管理器,可以去 Docker GitHub Release 页面下载对应架构(通常是 aarch64 或 x86_64)的二进制文件,解压后把可执行文件放到 /usr/bin/ 下就行。但这种方式后续升级麻烦,不建议新手折腾。
3. 常见坑点 & 注意事项
- 内核版本:确保你的 openEuler 内核版本不低于 3.10(实际上现在用的都是 4.x/5.x/6.x,完全够用)。可以用
uname -r查看。 - SELinux 问题:openEuler 默认可能开启 SELinux。如果 Docker 启动后权限报错,检查 SELinux 状态。临时测试可以设为 permissive 模式,生产环境建议配置正确的策略,而不是直接关闭。
- cgroup v1 vs v2:新版 Docker 和 Linux 内核更倾向于使用 cgroup v2。openEuler 较新版本默认启用 cgroup v2。如果你的 Docker 版本太老,可能会报兼容性错误。解决办法:要么升级 Docker 到最新版,要么在 grub 参数里指定
systemd.unified_cgroup_hierarchy=0强制用 v1(不推荐,除非你被旧软件绑死了)。 - 非 root 用户运行:Docker 默认需要 root 权限。如果你想让普通用户也能跑 docker 命令,需要把用户加到 docker 组:
sudo usermod -aG docker $USER # 然后重新登录生效
4. 替代方案?
既然你在用 openEuler,其实可以直接用 Podman。它是 Red Hat 系生态的一部分,和 openEuler 契合度极高,无守护进程、更安全、完全兼容 Docker CLI(alias docker=podman)。很多新用户发现,装了 Podman 之后根本不需要再装 Docker CE,因为体验几乎一样,还不用管 systemd 服务管理。
总结
- 要稳定、省心 → 用
dnf install docker-ce - 要安全、现代化 → 考虑
podman - 别信什么“欧拉不能装 Docker”的说法,那是拿 Windows 思维看 Linux,或者是太久远的历史遗留问题了。
动手前记得备份重要数据,装完先跑个 hello-world 验证一下网络通不通。
CLOUD云计算