在国产信创和内网环境中,为银河麒麟V10服务器离线安装Docker是一项高频需求。本文提供一份超详细的保姆级教程,采用官方二进制包安装方式,彻底告别依赖包缺失的烦恼,并涵盖Docker Compose的安装与关键权限配置,助你轻松搞定容器化部署。

前言:为什么选择二进制包安装?
大家好!在为银河麒麟V10(Kylin Linux Advanced Server V10)这样的国产服务器操作系统部署Docker时,尤其是在与外网隔离的内网环境中,传统的 yum 或 apt 安装方式完全失效。
此时,我们有两种主流的离线安装方案:
- RPM/DEB 包安装:需要手动下载所有依赖包,过程繁琐且极易因版本不匹配或缺少间接依赖而失败。
- 官方二进制包(.tgz)安装:直接使用Docker官方编译好的二进制文件,几乎没有外部依赖,就像绿色软件一样解压即用。
毫无疑问,对于追求稳定、高效的离线部署,二进制包安装是我们的首选方案!它能帮你绕开复杂的依赖地狱,直达成功。
第一步:精准准备,弹药上膛
在开始之前,我们需要在一台可以联网的机器上,准备好所有必需的文件。
1. 确认目标服务器信息
首先,登录你的银河麒麟V10服务器,明确它的“身份信息”。
- 查看系统版本:
cat /etc/kylin-release - 查看系统架构 (至关重要!):
uname -p(输出x86_64或aarch64) - 检查内核版本:
uname -r(确保 >= 3.10)

2. 下载核心武器库
-
Docker 二进制包:
- x86_64 架构:
https://download.docker.com/linux/static/stable/x86_64/ - aarch64 架构:
https://download.docker.com/linux/static/stable/aarch64/ - 推荐版本:
docker-20.10.7.tgz
- x86_64 架构:
-
Docker Compose 二进制文件:
- 访问地址:
https://github.com/docker/compose/releases - 下载与你系统架构匹配的文件,例如
docker-compose-linux-x86_64。
- 访问地址:
-
测试镜像:
- 在联网机器上执行:
docker pull hello-world docker save -o hello-world.tar hello-world
- 在联网机器上执行:
最后,将下载好的 docker-*.tgz、docker-compose-* 和 hello-world.tar 文件,全部传输到目标麒麟服务器上(例如,放到 /root/docker-offline 目录)。
第二步:实战操作,部署Docker
1. 解压并部署二进制文件
cd /root/docker-offline
tar -zxvf docker-20.10.7.tgz
sudo mv docker/* /usr/bin/
2. 创建并配置 systemd 服务
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
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
3. 自定义数据存储路径 (可选)
sudo mkdir -p /data/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"data-root": "/data/docker"
}
EOF
4. 关键一步:禁用SELinux
# 修改 /etc/selinux/config 文件
# 将 SELINUX=enforcing 或 SELINUX=permissive 改为 SELINUX=disabled
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 重启服务器使其生效
sudo reboot
第三步:启动、授权与验证
服务器重启后,我们继续。
1. 启动并验证Docker服务
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
看到绿色的 active (running) 字样即表示成功。

2. 配置非root用户权限 (强烈推荐)
为了日常操作的便捷和安全,我们应该将普通用户添加到 docker 用户组中,以避免处处使用 sudo。
# 如果要给当前使用的普通用户添加到 docker组,可以使用以下快捷方式
sudo usermod -aG docker $USER
🔔 特别注意:
- 如果你是以
root用户执行此命令,请务必将$USER替换为你实际需要使用Docker的普通用户名,如test_user。直接使用$USER变量会把root用户加进去,没有意义。 - 执行此命令后,被授权的用户需要退出当前终端会话并重新登录,新的用户组权限才能生效!
3. 验证Docker并运行容器
以你授权的普通用户登录后,执行以下命令(全程无需 sudo):
# 1. 验证版本,确认非root用户可以访问Docker守护进程
docker version
# 2. 导入离线镜像包
docker load -i /root/docker-offline/hello-world.tar
# 3. 运行容器!
docker run hello-world
如果终端打印出 "Hello from Docker!",恭喜你,Docker核心部分已完美部署!
第四步:锦上添花,安装Docker Compose
Docker Compose 是定义和运行多容器 Docker 应用程序的利器。
1. 部署二进制文件
# 将下载的 compose 文件移动到系统路径并重命名
sudo mv /root/docker-offline/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# 赋予其可执行权限
sudo chmod +x /usr/local/bin/docker-compose
2. 验证安装
docker-compose --version
如果成功输出版本号,例如 Docker Compose version v2.x.x,则表示安装成功!

第五步:避坑指南与常见问题
- 权限问题 (
permission denied): 优先检查是否已将正确的普通用户添加到docker组,并且已经重新登录。其次再检查SELinux是否已禁用并重启。 - 镜像架构不匹配: 在
aarch64服务器上docker load一个x86_64的镜像会失败。准备文件时务必确认架构统一。 - 镜像管理: 所有镜像都必须通过
docker save和docker load进行迁移。提前规划好你需要的应用镜像,并全部打包带走。
总结
通过采用官方二进制包的安装方式,我们成功绕开了离线环境中最令人头疼的依赖问题,实现了一次干净、稳定、高效的Docker及Docker Compose部署。并且通过合理配置用户权限,使得日常使用更加流畅安全。
希望这份结合了理论与实战的终极指南,能为你扫清在国产操作系统上拥抱容器化技术的一切障碍。现在,开始你的麒麟+Docker之旅吧!
Q.E.D.


