麒麟V10服务器离线装Docker,手把手教你搞定systemctl服务配置(含软连接避坑)

发布时间:2026/5/19 16:59:13

麒麟V10服务器离线装Docker,手把手教你搞定systemctl服务配置(含软连接避坑) 麒麟V10服务器离线部署Docker全攻略从二进制安装到systemctl深度配置在国产化替代浪潮中麒麟V10作为主流国产操作系统正逐步进入各行业的核心业务场景。而Docker作为容器化技术的标杆其在内网环境下的稳定部署成为运维团队必须掌握的技能。本文将彻底解决三个核心问题如何在内网环境下获取正确的Docker二进制包如何通过systemctl实现服务化管理的精细控制当遇到containerd not found等经典报错时有哪些系统级的排查思路1. 离线环境准备与二进制包获取1.1 系统环境确认在麒麟V10上部署Docker前必须精确匹配系统架构与内核版本。执行以下命令获取关键信息# 查看系统架构x86_64或aarch64 uname -m # 确认内核版本需≥3.10 uname -r # 检查麒麟V10具体发行版 cat /etc/kylin-release注意麒麟V10的SP2/SP3版本对Docker的兼容性存在差异建议优先选择SP3版本进行部署。1.2 二进制包下载策略离线安装需要预先下载完整的静态二进制包。推荐从阿里云镜像站获取经过验证的稳定版本http://mirrors.aliyun.com/docker-ce/linux/static/stable/版本选择建议对照表Docker版本推荐内核版本备注20.10.x≥3.10长期支持版(LTS)23.0.x≥4.14需glibc≥2.32支持24.0.x≥5.4新功能最多稳定性待验证下载完成后通过MD5校验确保文件完整性md5sum docker-20.10.24.tgz # 对比官方公布的校验值2. 二进制部署的工程化实践2.1 解压与权限配置传统教程建议直接复制到/usr/bin但更推荐建立独立的软件目录# 创建标准化目录结构 mkdir -p /program/docker/{bin,config,data} # 解压到专用目录 tar -xzvf docker-20.10.24.tgz -C /program/docker/bin # 设置可执行权限 find /program/docker/bin -type f -exec chmod 755 {} \;这种做法的优势在于符合Filesystem Hierarchy Standard规范便于后续版本升级和回滚隔离系统目录避免污染2.2 软连接体系构建为避免PATH检索问题采用软连接方式接入系统路径# 批量创建软连接推荐方案 for f in /program/docker/bin/*; do ln -sf $f /usr/local/bin/$(basename $f) done # 验证关键组件 which dockerd which containerd which runc软连接方案相比直接复制的优势对比方案类型升级便利性磁盘占用隔离性排错难度直接复制差单份弱易软连接优双份强中PATH扩展中单份中难3. systemd服务配置深度解析3.1 单元文件编写规范在/etc/systemd/system/docker.service中写入以下内容[Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Requirescontainerd.service Wantsnetwork-online.target [Service] Typenotify ExecStart/usr/local/bin/dockerd \ --containerd/run/containerd/containerd.sock \ --exec-opt native.cgroupdriversystemd ExecReload/bin/kill -s HUP $MAINPID TimeoutSec0 RestartSec2 Restartalways StartLimitBurst3 StartLimitInterval60s LimitNOFILE1048576 LimitNPROCinfinity TasksMaxinfinity Delegateyes KillModeprocess [Install] WantedBymulti-user.target关键参数说明Typenotify确保Docker就绪后才启动依赖服务--exec-opt native.cgroupdriversystemd适配麒麟V10的cgroup驱动Delegateyes允许Docker管理自己的子进程3.2 依赖服务配置创建containerd服务单元/etc/systemd/system/containerd.service[Unit] Descriptioncontainerd container runtime Documentationhttps://containerd.io Afternetwork.target [Service] ExecStart/usr/local/bin/containerd Restartalways RestartSec5 Delegateyes KillModeprocess [Install] WantedBymulti-user.target启用服务的标准流程systemctl daemon-reload systemctl enable --now containerd systemctl enable --now docker # 验证服务状态 systemctl status docker -l journalctl -u docker --since 1 hour ago4. 典型故障排查手册4.1 依赖组件缺失问题当出现containerd not found错误时按以下流程排查路径验证ls -l /usr/local/bin/containerd ldd /usr/local/bin/containerd环境变量检查echo $PATH systemctl show docker --propertyEnvironment进程树分析pstree -ap | grep -E docker|containerd4.2 内核兼容性问题麒麟V10常见的内核参数调整# 检查当前配置 sysctl -a | grep -E ipv4.ip_forward|bridge-nf-call # 永久生效配置 cat /etc/sysctl.d/99-docker.conf EOF net.ipv4.ip_forward 1 net.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 EOF sysctl -p /etc/sysctl.d/99-docker.conf4.3 存储驱动适配根据实际存储设备选择合适的驱动驱动类型适用场景麒麟V10适配性overlay2标准EXT4/XFS文件系统优devicemapper直接块设备存储中vfs测试环境差配置示例/etc/docker/daemon.json{ storage-driver: overlay2, storage-opts: [ overlay2.override_kernel_checktrue ] }5. 生产环境优化建议5.1 资源限制配置在/usr/lib/systemd/system/docker.service.d/limits.conf中添加[Service] LimitMEMLOCKinfinity LimitSTACK8192000 LimitDATAinfinity5.2 日志轮转配置创建/etc/logrotate.d/docker/var/lib/docker/containers/*/*.log { rotate 7 daily compress delaycompress missingok copytruncate }5.3 离线镜像加载方案保存和加载镜像的标准流程# 导出镜像 docker save -o nginx.tar nginx:latest # 内网加载 docker load -i nginx.tar # 批量处理脚本 for img in *.tar; do docker load -i $img rm -f $img done

相关新闻