银河麒麟v10部署docker需匹配架构、补全依赖并手动配置systemd服务:一、yum在线安装需替换$releasever为7并启用仓库;二、离线安装须校验aarch64/x86_64二进制包及内核≥4.19.90;三、必须创建docker.service单元文件并daemon-reload;四、需配置/etc/docker/daemon.json启用overlay2驱动。

如果您在银河麒麟操作系统上部署容器应用,但Docker服务无法正常启动或命令不可用,则可能是由于安装方式不匹配系统架构、依赖缺失或服务单元未正确配置。以下是适用于银河麒麟V10(含SP1/SP3/Tercel/Halberd等版本)的多种可靠安装方法:
一、YUM在线安装法(适用于网络通畅且源可用环境)
该方法通过系统包管理器自动解决依赖并完成安装,适合非涉密、可联网的测试或开发环境。需确保yum源已启用Docker CE仓库,并适配Kylin Linux的软件包签名机制。
1、安装基础依赖工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加Docker官方稳定版仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、替换仓库baseurl以兼容麒麟内核(关键步骤):
sudo sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo
4、安装Docker CE核心组件:
sudo yum install -y docker-ce docker-ce-cli containerd.io
5、启动并启用Docker服务:
sudo systemctl start docker && sudo systemctl enable docker
6、验证安装结果:
sudo docker --version 与 sudo docker info | grep "Server Version" 应返回有效输出
二、静态二进制离线安装法(推荐用于国产化隔离环境)
该方法绕过包管理器,直接部署经校验的Docker二进制文件,适用于涉密网、科研专网及物理隔离场景,对系统内核和模块依赖要求明确,可控性高。
1、确认系统架构与内核版本:
uname -m 输出必须为 aarch64 或 x86_64;uname -r 输出内核版本不低于 4.19.90
2、加载必需内核模块(若未加载):
sudo modprobe overlay && sudo modprobe br_netfilter
3、持久化模块加载配置:
echo "overlay" | sudo tee /etc/modules-load.d/overlay.conf && echo "br_netfilter" | sudo tee /etc/modules-load.d/br_netfilter.conf
4、下载对应架构的Docker静态包(如aarch64平台):
wget https://download.docker.com/linux/static/stable/aarch64/docker-24.0.7.tgz
5、校验文件完整性:
sha256sum docker-24.0.7.tgz 对比官网公布的哈希值,确保 校验值完全一致
6、解压并部署二进制文件:
tar -xzvf docker-24.0.7.tgz && sudo cp docker/* /usr/bin/
7、赋予执行权限:
sudo chmod +x /usr/bin/docker* /usr/bin/containerd*
三、systemd服务手动配置法(必选步骤,无论采用哪种安装方式)
麒麟OS默认不自带docker.service定义,必须手动创建标准服务单元文件,否则dockerd无法作为守护进程运行,也无法实现开机自启与日志集成。
1、创建服务单元文件:
sudo vim /usr/lib/systemd/system/docker.service
2、填入以下标准定义(注意ExecStart路径与Type设置):
[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
TimeoutStartSec=0
Restart=on-abnormal
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
3、重载systemd配置并启动服务:
sudo systemctl daemon-reload && sudo systemctl start docker
4、检查服务状态是否为active (running):
sudo systemctl status docker | grep "Active:" 输出应为 active (running)
四、容器运行时增强配置法(提升稳定性与国产化兼容性)
银河麒麟V10默认使用overlay2存储驱动,但需显式配置daemon.json以启用该驱动并指定数据根路径,避免/var/lib/docker空间不足或权限冲突问题。
1、创建Docker配置目录:
sudo mkdir -p /etc/docker
2、生成daemon.json配置文件:
sudo tee /etc/docker/daemon.json {
"storage-driver": "overlay2",
"data-root": "/opt/docker/data",
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://mirror.baidubce.com"]
}
EOF
3、创建并挂载独立数据分区(可选但推荐):
sudo mkdir -p /opt/docker/data && sudo chown root:root /opt/docker/data
4、重启Docker服务使配置生效:
sudo systemctl restart docker
5、验证配置加载情况:
sudo docker info | grep -E "(Storage|Registry)" 输出中应包含 overlay2 与配置的镜像地址
五、基础验证与权限修复法(排除常见运行失败)
即使服务启动成功,普通用户仍可能因权限不足无法执行docker命令,需将当前用户加入docker组并验证SELinux或审计策略是否拦截容器操作。
1、创建docker组(如不存在):
sudo groupadd docker
2、将当前用户加入docker组:
sudo usermod -aG docker $USER
3、刷新组权限(无需重启,但需新shell):
newgrp docker
4、拉取并运行测试镜像:
sudo docker pull hello-world && sudo docker run --rm hello-world
5、检查容器运行日志是否无SElinux拒绝记录:
sudo ausearch -m avc -ts recent | grep docker 若有输出,需执行 sudo setsebool -P container_manage_cgroup on











