在银河麒麟 + 海光CPU信创服务器上离线安装 Docker 20.10.21 全流程避坑指南
离线优先、老版本稳定、权限先行、镜像本地化”通过本文方法,你可以在无外网、高安全、国产 CPU+OS环境下,快速搭建可靠的 Docker 运行时,为 AI 模型部署打下坚实基础。✅如果你也在信创环境踩过坑,欢迎在评论区分享你的经验!
在国产化替代浪潮下,越来越多的项目需要部署在 银河麒麟操作系统 + 海光 CPU 架构 的信创服务器上。然而,这类环境往往存在:
- 无法直连外网(Docker Hub 被屏蔽)
wget/curlSSL 连接异常- 用户权限与家目录配置混乱
- RPM 包依赖冲突
本文记录了我在 银河麒麟 V10 + 海光 C86 架构 服务器上成功部署 Docker 20.10.21 的完整过程,并总结了多个“血泪教训”,帮助后来者少走弯路。
🧱 一、为什么选择 Docker 20.10.21?
|
版本 |
问题 |
|
Docker ≥ 24.x |
依赖 |
|
Docker 20.10.21 |
✅ 无强制插件依赖 |
⚠️ 切勿盲目使用最新版!稳定、低依赖的老版本更适合信创环境。
🔧 二、完整安装步骤(离线 + 国内镜像)
1️⃣ 下载 RPM 包(使用华为云镜像站)
由于 download.docker.com 被防火墙拦截,改用 华为开源镜像站(国内可直连):
cd /tmp
sudo curl -LO https://mirrors.huaweicloud.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.21-3.1.el7.x86_64.rpm
sudo curl -LO https://mirrors.huaweicloud.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-20.10.21-3.el7.x86_64.rpm
sudo curl -LO https://mirrors.huaweicloud.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.21-3.el7.x86_64.rpm
✅ 华为镜像对信创环境兼容性最佳,且保留历史版本。
2️⃣ 卸载旧版 containerd(关键!)
如果之前安装过其他版本(如 1.6.24),必须先卸载:
# 查看已安装包
rpm -qa | grep containerd
# 强制卸载(忽略依赖)
sudo rpm -e --nodeps containerd.io
❌ 否则会报错:containerd 与 containerd.io-1.6.21 冲突
3️⃣ 安装 Docker(跳过非必要依赖)
# 先装 containerd
sudo rpm -ivh containerd.io-1.6.21-3.1.el7.x86_64.rpm
# 再装 CLI 和 CE(跳过插件依赖)
sudo rpm -ivh --nodeps docker-ce-cli-20.10.21-3.el7.x86_64.rpm
sudo rpm -ivh --nodeps docker-ce-20.10.21-3.el7.x86_64.rpm
💡 --nodeps 只跳过 docker-scan-plugin 等非运行必需组件,不影响容器功能。
4️⃣ 启动服务
sudo systemctl daemon-reload
sudo systemctl enable --now docker
🛑 三、常见“坑”及解决方案
❌ 坑 1:GnuTLS: 在 pull 函数中出错(wget 失败)
原因:银河麒麟默认 wget 使用 GnuTLS,与 AWS CloudFront TLS 不兼容。
解决:不要用 wget,改用 curl 或直接从华为/阿里镜像下载。
❌ 坑 2:Could not chdir to home directory /home/yb: 权限不够
原因:
/home目录权限被设为770(仅 root 和特定组可访问)- 用户家目录属主错误(曾用
sudo操作导致)
修复:
# 修复 /home 权限(标准应为 755)
sudo chmod 755 /home
# 重建家目录
sudo rm -rf /home/yb
sudo mkdir /home/yb
sudo chown 1003:1003 /home/yb # 替换为你的 UID:GID
sudo chmod 755 /home/yb
🔔 执行后必须重新 SSH 登录,否则 shell 环境不生效。
❌ 坑 3:permission denied on /var/run/docker.sock
原因:用户未加入 docker 组。
解决:
sudo usermod -aG docker yb
newgrp docker # 或重新登录
❌ 坑 4:connection refused 访问 Docker Hub
原因:内网防火墙完全屏蔽外联。
终极方案:离线加载镜像
# 在外网机器执行
docker save hello-world > hello-world.tar
# 拷贝到信创服务器后
docker load < hello-world.tar
docker run --rm hello-world
✅ 所有大模型部署(如 vLLM)均可采用此方式离线加载镜像。
❌ 坑 5:旧用户残留导致 UID 冲突
现象:删除用户后重建同名用户,但家目录属主仍为旧 UID。
解决:彻底删除 /home/yb 并重建,确保 chown 使用当前 UID。
🌐 四、(可选)配置国内镜像加速器
若网络允许部分外联,可配置加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
EOF
sudo systemctl restart docker
⚠️ 注意:部分信创环境即使配置加速器仍无法拉取,离线方案最可靠。
✅ 五、验证安装成功
$ docker --version
Docker version 20.10.21, build baeda1f
$ docker run --rm hello-world
Hello from Docker!
This message shows your installation appears to be working correctly.
🚀 六、后续建议:部署大模型(如 Qwen2.5-14B)
- 在外网机器拉取
vllm/vllm-openai:v0.4.3 docker save导出 tar 包- 拷贝到麒麟服务器并
docker load - 运行:
docker run --gpus all \
-v /path/to/model:/model \
-p 8000:8000 \
vllm/vllm-openai:v0.4.3 \
--model /model/Qwen2.5-14B-Instruct
📌 总结
在信创环境中部署 Docker,核心原则是:
“离线优先、老版本稳定、权限先行、镜像本地化”
通过本文方法,你可以在 无外网、高安全、国产 CPU+OS 环境下,快速搭建可靠的 Docker 运行时,为 AI 模型部署打下坚实基础。
✅ 欢迎点赞、收藏、评论交流!
如果你也在信创环境踩过坑,欢迎在评论区分享你的经验!
更多推荐
所有评论(0)