麒麟系统离线安装 Docker – 完整详细步骤
下面是在银河麒麟系统上离线安装 Docker 的完整指南,包含从环境检查到安装验证的所有步骤。本文以最稳定的 官方二进制包方式 进行安装,适用于 x86_64 和 ARM64(aarch64) 架构。
一、准备工作(在有网络的电脑上)
1.1 确认麒麟系统的 CPU 架构
首先需要知道你的麒麟系统是什么架构,这决定了下载哪个安装包。在麒麟系统的终端中执行:
uname -m
输出结果说明:
- x86_64 → Intel/AMD 64位架构
- aarch64 → ARM 架构(如鲲鹏、飞腾处理器)
1.2 下载 Docker 离线安装包
在能上网的电脑上,访问 Docker 官方静态包下载地址:
- x86_64 架构:https://download.docker.com/linux/static/stable/x86_64/
- aarch64 架构:https://download.docker.com/linux/static/stable/aarch64/
版本选择建议:对于政企内网环境,推荐选择 20.10.x 系列(如 20.10.24),该版本经过大量生产验证,稳定性最好。
下载示例(替换为实际版本号):
- x86_64:docker-20.10.24.tgz
- aarch64:docker-20.10.24.tgz
1.3 (可选)下载 Docker Compose
如果需要 Docker Compose,访问 GitHub 发布页下载对应架构的二进制文件:
https://github.com/docker/compose/releases
选择 docker-compose-linux-x86_64 或 docker-compose-linux-aarch64。
二、将安装包传到麒麟服务器
使用 U 盘、SCP 或 FTP 将下载的文件传输到麒麟服务器,例如放到 /opt/docker/ 目录:
# 在麒麟服务器上创建目录
sudo mkdir -p /opt/docker
# 通过 scp 从本机上传(在本机执行)
scp docker-20.10.24.tgz 用户名@麒麟服务器IP:/opt/docker/
三、麒麟服务器上的安装步骤
3.1 进入存放目录并解压
cd /opt/docker
tar -xzvf docker-20.10.24.tgz
解压后会得到一个 docker 文件夹,里面包含 dockerd、docker、containerd 等二进制文件。
3.2 复制二进制文件到系统路径
# 将 docker 文件夹下的所有文件复制到 /usr/bin/
sudo cp -p docker/* /usr/bin/
3.3 创建 Docker 系统服务文件(systemd)
创建服务文件 /usr/lib/systemd/system/docker.service:
sudo vi /usr/lib/systemd/system/docker.service
将以下内容粘贴进去:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
KillMode=process
Restart=always
RestartSec=5s
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
[Install]
WantedBy=multi-user.target
3.4 重新加载并启动 Docker 服务
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动 Docker
sudo systemctl start docker
# 设置 Docker 开机自启
sudo systemctl enable docker
3.5 验证安装是否成功
docker –version
正常输出示例:Docker version 20.10.24, build 297e128
docker ps
正常输出示例(空列表但无报错):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
四、安装 Docker Compose(可选)
# 将下载的 docker-compose 文件复制到 /usr/local/bin/
sudo cp /opt/docker/docker-compose-linux-xxx /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose –version
五、配置镜像加速器(强烈推荐)
在内网环境中,不配置镜像加速会导致拉取镜像失败或超时。创建配置文件:
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
填入以下内容(可使用阿里云、腾讯云等加速地址):
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com",
"https://docker.m.daocloud.io"
],
"data-root": "/data/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
},
"exec-opts": ["native.cgroupdriver=systemd"]
}
保存后重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证加速配置是否生效:
docker info | grep -A5 "Registry Mirrors"
六、配置非 root 用户使用 Docker(可选)
避免每次命令都要输入 sudo:
# 创建 docker 组(通常已存在)
sudo groupadd docker
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 使权限立即生效(或重新登录)
newgrp docker
# 验证(无需 sudo)
docker ps
七、离线环境导入镜像的方法
在内网中无法直接 docker pull,需要从外网导出镜像再导入:
在外网电脑上:
# 拉取需要的镜像
docker pull nginx:latest
# 导出为 tar 文件
docker save nginx:latest -o nginx.tar
将 tar 文件传到麒麟服务器后:
# 导入镜像
docker load -i nginx.tar
# 验证
docker images
八、常见问题排查
问题1:启动 Docker 时报 “permission denied”
检查当前用户是否有权限:
# 将用户加入 docker 组
sudo usermod -aG docker $USER
# 重新登录或执行
newgrp docker
问题2:防火墙导致容器网络问题
# 检查防火墙状态
systemctl status firewalld
# 如果不需要防火墙,可暂时关闭(根据安全策略决定)
sudo systemctl stop firewalld
问题3:内核版本过低
Docker 要求内核版本 3.10 以上:
uname -r
# 如果低于 3.10,需要先升级内核
问题4:cgroup 相关错误
如果启动容器时出现 cgroup 错误,在 /etc/docker/daemon.json 中添加:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
然后重启 Docker。
九、常用 Docker 命令速查
| docker ps | 列出运行中的容器 |
| docker ps -a | 列出所有容器(包括停止的) |
| docker images | 列出本地镜像 |
| docker pull 镜像名 | 拉取镜像(需联网) |
| docker run -d –name 容器名 镜像名 | 后台运行容器 |
| docker stop 容器名 | 停止容器 |
| docker rm 容器名 | 删除容器 |
| docker rmi 镜像ID | 删除镜像 |
| docker logs 容器名 | 查看容器日志 |
| docker exec -it 容器名 /bin/bash | 进入容器内部 |
总结
以上是在麒麟系统上离线安装 Docker 的完整流程。核心要点:
如果你的麒麟系统是申威(sw_64)或其他特殊架构,需要寻找专门为该架构编译的 Docker 包,通用的 x86/ARM 包将无法安装。

