在真实的政企、科研、专网环境里,
“能不能装 Docker”从来不是技术问题,而是合规与工程问题。外网不可达、源不可用、镜像要归档、版本要可控、升级要可审计,
才是银河麒麟 V10 环境里 Docker 的真实使用场景。
这篇文章,不教你“最快装 Docker”,而是教你:
👉 如何在银河麒麟 V10 下,离线、可交付、可长期运维地安装 Docker,并且选对版本。
一、为什么在银河麒麟 V10 上“必须考虑离线安装 Docker”
1.1、真实环境背景(你一定不陌生)
在以下环境中,在线安装 Docker 基本不可行:
涉密 / 商密网络
科研网、实验专网
内外网物理隔离
国产化替代环境(禁止直连公网仓库)
常见现象包括:
yum/apt源不可用Docker 官方仓库被封
只能通过 U 盘 / 受控介质拷贝文件
因此,离线安装不是“备选方案”,而是“唯一方案”。
1.2、为什么偏偏是 Docker?
因为在国产化环境里,Docker 已经成为:
Zabbix / Prometheus / ELK 的首选运行方式
数据中台、运维平台的事实标准
应用“解耦 + 可迁移”的关键基础
不会 Docker,等于被挡在现代运维体系之外。
二、先把 Docker 的“版本体系”讲清楚
很多人装 Docker 出问题,根源不是麒麟,而是版本认知错误。
2.1、Docker 发展脉络简化版
Docker 早期是一整套:
docker = 客户端 + daemon + runtime + 镜像工具
后来拆分为三层:
2.2、截止目前,Docker 有哪些主流版本线?
这里说的是 Docker Engine(不是 Docker Desktop)
(1)Docker CE(Community Edition)
这是最常用、最推荐的一条线。
(2)Docker EE(已逐步并入商业订阅)
原本是企业版
现在基本不单独推广
国产环境 极少使用
(3)containerd + nerdctl(非 Docker)
Kubernetes 原生方案
命令与 Docker 不完全一致
不适合“传统运维团队”直接替代 Docker
2.3、一个结论先给出来
在银河麒麟 V10 离线环境下:
✅ 首选:Docker CE 20.10.x 或 23.0.x
⚠️ 24.x 以上需充分验证
❌ 不建议追新版本
三、为什么“不是越新越好”?版本差异一次讲明白
3.1、Docker 20.10.x(强烈推荐)
优点:
稳定,BUG 已被大量踩平
对内核版本要求相对友好
政企、科研网大量生产案例
缺点:
功能不是最新
📌 一句话评价:
“保守但可靠,最适合国产化离线环境”
3.2、Docker 23.x
优点:
性能、日志、网络有改进
Compose v2 集成度更高
风险点:
对 systemd、cgroup 依赖更强
个别麒麟内核需验证
📌 适合人群:
有一定 Docker 运维经验
能接受测试成本的团队
3.3、Docker 24 / 25.x(谨慎)
潜在问题:
新特性多,但回归测试少
对内核特性依赖更激进
国产内核适配滞后风险
📌 结论:
不适合“第一次在麒麟上规模部署 Docker”
四、银河麒麟 V10 离线安装 Docker 的“推荐路线图”
4.1、推荐组合(企业稳态)
4.2、查看系统版本
[root@localhost opt]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Lance)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Lance)"
ANSI_COLOR="0;31"
[root@localhost opt]#
4.3、查看Linux内核版本(3.10以上)
[root@localhost opt]# uname -r
4.19.90-52.22.v2207.ky10.aarch64
[root@localhost opt]# uname -a
Linux localhost.localdomain 4.19.90-52.22.v2207.ky10.aarch64 #1 SMP Tue Mar 14 11:52:45 CST 2023 aarch64 aarch64 aarch64 GNU/Linux
[root@localhost opt]# 
4.4、查看 iptabls 版本(1.4以上)
[root@localhost opt]# iptables --version
iptables v1.8.5 (legacy)
4.5、判断处理器架构
[root@localhost opt]# uname -p
aarch64
[root@localhost opt]# 可以看到,系统处理器架构为ARM架构;如果为x86 架构的,则会显示x86_64;

五、离线安装方案一:官方二进制包(最通用)
5.1、在可联网机器下载 Docker 二进制包
https://download.docker.com/linux/static/stable/x86_64/

https://download.docker.com/linux/static/stable/aarch64/

wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.24.tgz
wget https://download.docker.com/linux/static/stable/aarch64/docker-20.10.24.tgz(ARM 架构请换 aarch64)


5.2、拷贝到银河麒麟服务器
tar zxvf docker-20.10.24.tgz
cp -a docker/* /usr/bin/
验证:
docker version

5.3、配置 systemd 服务
创建 /etc/systemd/system/docker.service:
[Unit]
Description=Docker Application Container Engine
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target
启动:
systemctl daemon-reload
systemctl enable docker --now
六、离线安装方案二:离线 rpm/deb 包(受限但规范)
适用场景
需要符合包管理规范
要求可审计、可卸载
缺点
依赖包多
麒麟版本差异较大
成本明显高于二进制方案
📌 实战建议:
除非单位明确要求,否则优先二进制方案
七、离线环境下 Docker 的“必做三件事”
7.1、配置镜像仓库(如果文件不存在要手动创建)
Docker 默认从:
https://registry-1.docker.io拉取镜像,也就是 Docker Hub 官方源。
在国内环境常见问题:
连接慢
随机超时
有时直接不可达
CI/CD 构建不稳定
📌 结论:
不配置镜像源,Docker 在国内环境几乎不可用。
路径:/etc/docker/daemon.json
国内常用 Docker 镜像仓库一览
以下均为**“镜像加速器”**,本质是 Docker Hub 的缓存/代理。
阿里云镜像加速器(最常用)
稳定性最好
速度快
强烈推荐
格式(需要你自己的加速地址):
https://<你的ID>.mirror.aliyuncs.com👉 登录阿里云控制台 → 容器镜像服务 → 镜像加速器
即可看到你的专属地址。
腾讯云镜像加速器
https://mirror.ccs.tencentyun.com特点:
不需要账号
速度尚可
适合作为备用
网易云镜像
https://hub-mirror.c.163.com特点:
老牌镜像
覆盖面广
稳定性一般(建议做备用)
DaoCloud 镜像加速器
https://mirror.daocloud.io特点:
DevOps 圈常用
对常见镜像支持好
中科大镜像(部分环境可用)
https://docker.mirrors.ustc.edu.cn
⚠️ 注意:
有时对外访问受限
企业环境需提前测试
标准配置方式(daemon.json,推荐)
1️⃣ 配置文件路径
/etc/docker/daemon.json如果文件不存在,直接创建即可。
2️⃣ 推荐「多镜像源」配置示例
{
"registry-mirrors": [
"https://<你的ID>.mirror.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com",
"https://mirror.daocloud.io"
],
"data-root": "/data/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
},
"exec-opts": ["native.cgroupdriver=systemd"]
}
解释几句关键项:
3️⃣ 重启 Docker 生效
systemctl daemon-reload
systemctl restart docker如何验证镜像仓库是否生效?
1️⃣ 查看 Docker 配置
docker info | grep -A5 "Registry Mirrors"看到类似输出即为成功:
Registry Mirrors:
https://xxxx.mirror.aliyuncs.com/
https://mirror.ccs.tencentyun.com/
2️⃣ 实际拉镜像测试
docker pull busybox:latest如果:
下载速度明显提升
不再频繁 timeout
说明配置生效。
保存后,执行:systemctl daemon-reload
7.2、镜像必须归档(不是临时下载)
docker save nginx:1.26 -o nginx-1.26.tar
sha256sum nginx-1.26.tar > nginx-1.26.tar.sha256这是合规与可追溯的关键。
7.3、禁止“随手升级 Docker”
Docker 升级 = 全部容器风险
国产环境 必须版本冻结
八、安装 docker-compose
Docker 是发动机,docker-compose 是“多容器启动编排器”
👉 不是必须装,但一旦涉及多个服务,几乎离不开
8.1、先弄清楚:Docker 本身是干什么的?
Docker = 单个容器的运行引擎
你用 Docker,平时干的事情是:
docker pull nginx
docker run -d -p 80:80 nginx它只擅长一件事:
👉 管理“一个容器”的生命周期
拉镜像
启动容器
停止容器
删除容器
8.2、那 docker-compose 是干嘛的?
docker-compose = 多容器的“统一说明书 + 启动器”
当你要启动 一整套系统 时,Docker 原生命令就开始反人类了
典型真实场景(你一定见过)
以 Zabbix 为例,至少包含:
zabbix-server
zabbix-web
mysql / postgres
agent
端口、网络、数据目录、启动顺序
不用 docker-compose 的下场
docker run mysql ...
docker run zabbix-server ...
docker run zabbix-web ...
命令长
顺序容易错
端口/路径写错一次就翻车
换一台服务器要重写一遍
用 docker-compose 后
你只需要一个文件:
docker-compose.yml然后一句命令:
docker compose up -d直接 GitHub 下载:docker/compose选择自己喜欢的版本,这里直接拉满,下载当前最新的版本:v2.24.0
https://github.com/docker/compose/releases


这里根据自己的架构,选择对应的包,下载就好了。
cp docker-compose-linux-aarch64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose查看版本
[root@localhost opt]# docker-compose -v
Docker Compose version v2.24.0
[root@localhost opt]# 
九、常见踩坑总结
十、一句话总结
在银河麒麟 V10 上装 Docker,
真正的难点从来不是“怎么装”,
而是:选对版本、离线可控、长期稳定、出了事能兜底。