在真实的政企、科研、专网环境里, “能不能装 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 + 镜像工具
plaintext
后来拆分为三层:
|
Docker CLI |
docker 命令 |
|
Docker Engine |
dockerd 守护进程 |
|
Container Runtime |
containerd / runc |
2.2、截止目前,Docker 有哪些主流版本线?
这里说的是 Docker Engine(不是 Docker Desktop)
(1)Docker CE(Community Edition)
这是最常用、最推荐的一条线。
|
20.10.x |
老牌稳定,政企最常见 |
|
23.0.x |
新架构,功能增强 |
|
24.x |
当前主流,新特性较多 |
|
25.x |
较新,对老系统兼容性需验证 |
(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、推荐组合(企业稳态)
|
Docker Engine |
20.10.24 |
|
containerd |
随 Docker CE |
|
runc |
随 Docker CE |
|
docker-compose |
v2.x 插件版 |
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"]
}
解释几句关键项:
|
registry-mirrors |
镜像加速器列表(按顺序尝试) |
|
data-root |
Docker 数据目录(避免根分区爆盘) |
|
log-opts |
防止容器日志无限增长 |
|
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]#

九、常见踩坑总结
|
Docker 起不来 |
内核参数不支持 |
|
容器网络异常 |
iptables / nftables 冲突 |
|
cgroup 报错 |
版本与内核不匹配 |
|
日志爆盘 |
未限制 log-size |
十、总结
在银河麒麟 V10 上装 Docker, 真正的难点从来不是“怎么装”, 而是:
选对版本、离线可控、长期稳定、出了事能兜底。
网硕互联帮助中心




评论前必须登录!
注册