银河麒麟V10 SP2服务器版Docker 20.10离线安装指南

银河麒麟V10 SP2服务器版Docker 20.10离线安装指南

1. 银河麒麟V10 SP2服务器版Docker离线安装指南

在国产化替代的大背景下,银河麒麟操作系统作为国产自主操作系统的代表,其服务器版本V10 SP2在企业级应用中越来越常见。而Docker作为当前最流行的容器化技术,在国产化环境中的部署需求也日益增长。本文将详细介绍在银河麒麟V10 SP2服务器版上离线安装Docker 20.10的全过程,包含依赖解决、配置优化等实战经验。

提示:本文基于银河麒麟V10 SP2服务器版(飞腾版)实测验证,同样适用于x86架构版本,安装前请确认系统架构匹配。

1.1 环境准备与前置检查

在开始安装前,需要做好以下准备工作:

  1. 系统版本确认:
cat /etc/kylin-release uname -m

输出应显示"Kylin Linux Advanced Server release V10 SP2"及架构信息(aarch64或x86_64)

  1. 磁盘空间检查:
df -h /var

建议/var分区至少保留5GB空间用于Docker存储

  1. 内核版本确认:
uname -r

Docker 20.10要求内核版本3.10以上,银河麒麟V10 SP2默认满足

  1. 关闭防火墙(生产环境需按需配置规则):
systemctl stop firewalld systemctl disable firewalld

1.2 离线安装包获取

由于是离线环境,需要提前下载以下RPM包(以aarch64架构为例):

  1. Docker CE 20.10.17官方包:

    • docker-ce-20.10.17-3.el7.aarch64.rpm
    • docker-ce-cli-20.10.17-3.el7.aarch64.rpm
    • containerd.io-1.6.6-3.1.el7.aarch64.rpm
  2. 依赖包:

    • libcgroup-0.41-21.ky10.aarch64.rpm
    • libseccomp-2.5.1-1.ky10.aarch64.rpm
    • device-mapper-libs-1.02.177-3.ky10.aarch64.rpm
    • socat-1.7.3.2-2.ky10.aarch64.rpm

注意:银河麒麟基于CentOS生态,但部分包需要专门适配版本,建议从官方镜像站或可信源获取。

2. 分步安装流程

2.1 依赖包安装

按依赖顺序安装基础组件:

rpm -ivh libseccomp-2.5.1-1.ky10.aarch64.rpm rpm -ivh device-mapper-libs-1.02.177-3.ky10.aarch64.rpm rpm -ivh libcgroup-0.41-21.ky10.aarch64.rpm rpm -ivh socat-1.7.3.2-2.ky10.aarch64.rpm

常见问题处理:

  1. 若出现"already installed"提示,可添加--replacefiles参数
  2. 依赖缺失时使用rpm -qpR <package>.rpm查看具体依赖

2.2 Containerd安装

作为Docker的运行时组件,需优先安装:

rpm -ivh containerd.io-1.6.6-3.1.el7.aarch64.rpm

配置containerd:

mkdir -p /etc/containerd containerd config default > /etc/containerd/config.toml

修改关键配置:

[plugins."io.containerd.grpc.v1.cri".containerd] snapshotter = "overlayfs" disable_snapshot_annotations = true

启动服务:

systemctl enable containerd systemctl start containerd

2.3 Docker核心组件安装

按顺序安装主程序:

rpm -ivh docker-ce-cli-20.10.17-3.el7.aarch64.rpm rpm -ivh docker-ce-20.10.17-3.el7.aarch64.rpm

验证安装:

docker --version

应输出"Docker version 20.10.17..."

3. 配置与优化

3.1 基础配置调整

编辑配置文件/etc/docker/daemon.json

{ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] }

关键参数说明:

  • cgroupdriver:与银河麒麟systemd兼容
  • overlay2:银河麒麟推荐存储驱动
  • 日志限制:避免日志膨胀

3.2 服务管理命令

启动Docker服务:

systemctl enable docker systemctl start docker

验证运行状态:

systemctl status docker docker info | grep -i cgroup

3.3 离线镜像加载

将提前导出的镜像包(如nginx.tar)加载:

docker load -i nginx.tar

验证镜像:

docker images docker run --rm nginx:latest nginx -v

4. 常见问题排查

4.1 安装阶段问题

问题1:依赖冲突现象:package xxx is already installed解决:

rpm -e --nodeps 冲突包名 rpm -ivh --replacepkgs 当前包名

问题2:内核模块缺失现象:modprobe: FATAL: Module overlay not found解决:

echo "overlay" > /etc/modules-load.d/overlay.conf modprobe overlay

4.2 运行阶段问题

问题1:cgroup报错现象:Failed to mount cgroup at /sys/fs/cgroup解决:

grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0" reboot

问题2:存储驱动不兼容现象:storage-driver overlay2 is not supported解决:

  1. 确认内核版本uname -r
  2. 检查/etc/docker/daemon.json配置
  3. 尝试"storage-driver": "vfs"(性能较差)

4.3 性能优化建议

  1. 日志轮转配置:
journalctl --vacuum-size=100M
  1. 限制容器资源:
docker run -it --cpus 1 --memory 1g nginx
  1. 镜像清理策略:
docker system prune -af --filter "until=24h"

5. 生产环境建议

5.1 安全加固措施

  1. 启用用户命名空间:
{ "userns-remap": "default" }
  1. 禁用特权容器:
docker run --security-opt=no-new-privileges ...
  1. 配置TLS远程连接:
openssl req -newkey rsa:4096 -nodes -sha256 \ -keyout ca.key -x509 -days 365 -out ca.crt

5.2 离线仓库搭建

使用registry镜像创建本地仓库:

docker run -d -p 5000:5000 --restart=always \ -v /opt/registry:/var/lib/registry \ --name registry registry:2

推送镜像到本地仓库:

docker tag nginx localhost:5000/nginx docker push localhost:5000/nginx

5.3 监控方案

基础资源监控:

docker stats

日志集中管理:

{ "log-driver": "syslog", "log-opts": { "syslog-address": "udp://192.168.1.100:514" } }

在银河麒麟V10 SP2上稳定运行Docker的关键是确保内核兼容性和依赖完整性。实际部署中发现,飞腾架构下的容器性能损失约比x86环境高15-20%,建议在资源分配时预留足够余量。对于长期运行的容器,建议每周执行一次docker system prune维护。