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 LTS | 18.09.0 | 2018年发布,已停止维护 |
| 22.03 LTS | 18.09.x | 缺乏新特性,安全漏洞未修复 |
| 24.03 LTS | 18.09.x | 与现代容器生态不兼容 |
因此,我们需要从 Docker 官方源安装最新版本。
核心问题:openEuler 不被 Docker 源识别
Docker 官方源只认识 CentOS/RHEL 的版本号(如 7、8、9),而 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 | 通用备用 |
| DaoCloud | https://docker.m.daocloud.io | 通用加速,速度不错 |
建议:至少配置 2-3 个备用源,避免单点故障。
总结
在 openEuler 上安装 Docker 的核心要点:
- 不要用自带版本(版本太老,18.09)
- 添加国内镜像源(华为云/阿里云)
- 必须替换版本号(
$releasever→7) - 配置镜像加速器(提升拉取速度)
- 同时安装 docker-compose-plugin(获得 Docker Compose V2)
按照本文步骤操作,你应该能在 openEuler 上成功安装最新版 Docker。
如果觉得有用,欢迎点赞收藏!有问题可以在评论区交流~