openEuler 操作系统安装 Docker 完整指南(含 Docker Compose + 镜像加速)

1 阅读3分钟

openEuler 操作系统安装 Docker 完整指南(含 Docker Compose + 镜像加速)

前言

最近在 openEuler 服务器上部署研究生招生系统,需要安装 Docker 环境。踩了一些坑,比如 openEuler 自带的 Docker 版本太低(18.09)、官方源不识别 openEuler 版本号等。本文记录了完整的解决方案,希望能帮到有类似需求的朋友。

环境说明

  • 操作系统:openEuler 24.03 LTS SP3
  • 内核版本:6.6.0-132.0.0.111.oe2403sp3.x86_64
  • 安装目标:Docker CE + Docker Compose Plugin + 镜像加速

为什么不用 openEuler 自带的 Docker?

openEuler 可以通过 dnf install docker 直接安装,但版本非常低

openEuler 版本自带 Docker 版本问题
20.03 LTS18.09.02018年发布,已停止维护
22.03 LTS18.09.x缺乏新特性,安全漏洞未修复
24.03 LTS18.09.x与现代容器生态不兼容

因此,我们需要从 Docker 官方源安装最新版本。

核心问题:openEuler 不被 Docker 源识别

Docker 官方源只认识 CentOS/RHEL 的版本号(如 789),而 openEuler 返回的版本号是 24.03LTS_SP3,导致仓库 URL 变成不存在的路径:

# 错误路径(openEuler 版本号)
https://mirrors.aliyun.com/docker-ce/linux/centos/24.03LTS_SP3/x86_64/stable/
                                                   ↑ 不存在

# 正确路径(替换成 7 后)
https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/

解决方案:手动将 $releasever 替换为 7


完整安装步骤

第一步:清理旧源(如果有)

rm -f /etc/yum.repos.d/docker-ce.repo

第二步:添加 Docker 源

这里使用华为云源(国内速度快):

dnf config-manager --add-repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo

第三步:修复版本号(关键步骤)

sed -i 's/\$releasever/7/g' /etc/yum.repos.d/docker-ce.repo

验证修改是否成功:

cat /etc/yum.repos.d/docker-ce.repo | grep baseurl

应该看到:

baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/7/x86_64/stable

第四步:安装 Docker 和 Docker Compose

dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin --nogpgcheck

--nogpgcheck 可以避免跨发行版可能出现的 GPG 密钥验证问题。

第五步:启动并设置开机自启

systemctl start docker
systemctl enable docker

第六步:验证安装

docker --version
docker compose version

预期输出:

Docker version 27.3.1, build ......
Docker Compose version v2.29.2

第七步:配置镜像加速(推荐)

配置国内镜像加速器可以大幅提升拉取速度。这里使用阿里云专属加速地址 + 中科大 + 网易备用:

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://wi2lqncs.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ]
}
EOF
systemctl daemon-reload
systemctl restart docker

第八步:测试运行

docker run hello-world

如果看到 Hello from Docker! 的输出,说明安装成功!


一键安装脚本

如果你需要快速在另一台服务器上安装,可以直接复制以下完整脚本:

rm -f /etc/yum.repos.d/docker-ce.repo && \
dnf config-manager --add-repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo && \
sed -i 's/\$releasever/7/g' /etc/yum.repos.d/docker-ce.repo && \
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin --nogpgcheck && \
systemctl start docker && \
systemctl enable docker && \
mkdir -p /etc/docker && \
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://wi2lqncs.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ]
}
EOF
systemctl daemon-reload && \
systemctl restart docker && \
docker --version && \
docker compose version && \
echo "Docker 安装完成!"

常见问题与解决方案

1. 报错:Curl error (35): SSL connect error

原因:网络问题,无法访问 Docker 官方源

解决:改用国内镜像源(如华为云、阿里云)

2. 报错:Cannot download repodata/repomd.xml: All mirrors were tried

原因:openEuler 版本号不被识别

解决:执行 sed -i 's/\$releasever/7/g' /etc/yum.repos.d/docker-ce.repo 替换版本号

3. 报错:No match for argument: docker-ce

原因:同上,版本号问题导致找不到包

解决:确认执行了版本号替换步骤

4. 镜像加速不生效

验证方法

docker info | grep -A 5 "Registry Mirrors"

应该能看到配置的三个镜像地址。

5. Docker Compose 命令找不到

新版命令是 docker compose(空格),不是 docker-compose(横线)。如果报错,可手动安装:

mkdir -p ~/.docker/cli-plugins
curl -SL "https://get.daocloud.io/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose

镜像源选择建议

镜像源地址适用场景
阿里云(专属)https://xxx.mirror.aliyuncs.com阿里云用户,速度最快
华为云https://repo.huaweicloud.com/docker-ce华为云用户,内网加速
中科大https://docker.mirrors.ustc.edu.cn通用备用,稳定可靠
网易http://hub-mirror.c.163.com通用备用
DaoCloudhttps://docker.m.daocloud.io通用加速,速度不错

建议:至少配置 2-3 个备用源,避免单点故障。


总结

在 openEuler 上安装 Docker 的核心要点:

  1. 不要用自带版本(版本太老,18.09)
  2. 添加国内镜像源(华为云/阿里云)
  3. 必须替换版本号$releasever7
  4. 配置镜像加速器(提升拉取速度)
  5. 同时安装 docker-compose-plugin(获得 Docker Compose V2)

按照本文步骤操作,你应该能在 openEuler 上成功安装最新版 Docker。


如果觉得有用,欢迎点赞收藏!有问题可以在评论区交流~