麒麟系统离线安装 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_64docker-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 文件夹,里面包含 dockerddockercontainerd 等二进制文件。

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 的完整流程。核心要点:

  1. 根据 CPU 架构uname -m)选择对应版本的安装包
  2. 推荐使用 官方二进制包 方式,不依赖网络和仓库
  3. 通过 systemd 服务文件 管理 Docker 守护进程
  4. 配置 镜像加速器 解决内网拉取镜像问题
  5. 离线环境下使用 docker save/load 传递镜像

如果你的麒麟系统是申威(sw_64)或其他特殊架构,需要寻找专门为该架构编译的 Docker 包,通用的 x86/ARM 包将无法安装。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐