麒麟系统离线安装 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/目录:
# 在麒麟服务器上创建目录sudomkdir-p/opt/docker# 通过 scp 从本机上传(在本机执行)scpdocker-20.10.24.tgz 用户名@麒麟服务器IP:/opt/docker/三、麒麟服务器上的安装步骤
3.1 进入存放目录并解压
cd/opt/dockertar-xzvfdocker-20.10.24.tgz解压后会得到一个docker文件夹,里面包含dockerd、docker、containerd等二进制文件。
3.2 复制二进制文件到系统路径
# 将 docker 文件夹下的所有文件复制到 /usr/bin/sudocp-pdocker/* /usr/bin/3.3 创建 Docker 系统服务文件(systemd)
创建服务文件/usr/lib/systemd/system/docker.service:
sudovi/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.target3.4 重新加载并启动 Docker 服务
# 重新加载 systemd 配置sudosystemctl daemon-reload# 启动 Dockersudosystemctl startdocker# 设置 Docker 开机自启sudosystemctlenabledocker3.5 验证安装是否成功
docker--version正常输出示例:Docker version 20.10.24, build 297e128
dockerps正常输出示例(空列表但无报错):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES四、安装 Docker Compose(可选)
# 将下载的 docker-compose 文件复制到 /usr/local/bin/sudocp/opt/docker/docker-compose-linux-xxx /usr/local/bin/docker-compose# 添加执行权限sudochmod+x /usr/local/bin/docker-compose# 验证安装docker-compose--version五、配置镜像加速器(强烈推荐)
在内网环境中,不配置镜像加速会导致拉取镜像失败或超时。创建配置文件:
sudomkdir-p/etc/dockersudovi/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:
sudosystemctl daemon-reloadsudosystemctl restartdocker验证加速配置是否生效:
dockerinfo|grep-A5"Registry Mirrors"六、配置非 root 用户使用 Docker(可选)
避免每次命令都要输入sudo:
# 创建 docker 组(通常已存在)sudogroupadddocker# 将当前用户加入 docker 组sudousermod-aGdocker$USER# 使权限立即生效(或重新登录)newgrpdocker# 验证(无需 sudo)dockerps七、离线环境导入镜像的方法
在内网中无法直接docker pull,需要从外网导出镜像再导入:
在外网电脑上:
# 拉取需要的镜像dockerpull nginx:latest# 导出为 tar 文件dockersave nginx:latest-onginx.tar将 tar 文件传到麒麟服务器后:
# 导入镜像dockerload-inginx.tar# 验证dockerimages八、常见问题排查
问题1:启动 Docker 时报 “permission denied”
检查当前用户是否有权限:
# 将用户加入 docker 组sudousermod-aGdocker$USER# 重新登录或执行newgrpdocker问题2:防火墙导致容器网络问题
# 检查防火墙状态systemctl status firewalld# 如果不需要防火墙,可暂时关闭(根据安全策略决定)sudosystemctl 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 的完整流程。核心要点:
- 根据 CPU 架构(
uname -m)选择对应版本的安装包 - 推荐使用官方二进制包方式,不依赖网络和仓库
- 通过systemd 服务文件管理 Docker 守护进程
- 配置镜像加速器解决内网拉取镜像问题
- 离线环境下使用docker save/load传递镜像
如果你的麒麟系统是申威(sw_64)或其他特殊架构,需要寻找专门为该架构编译的 Docker 包,通用的 x86/ARM 包将无法安装。