必须使用银河麒麟官方Docker镜像作为基础层,如cr.kylinos.cn/v10sp3-2403/kylin-server-v10-sp3-2403-general-alpha20-x86_64-platform:202405,严禁混用CentOS/Ubuntu镜像;Dockerfile需依次声明FROM、创建locale目录、设置LANG/LC_ALL/TZ、更新kylin-repo源并安装工具、COPY/ADD业务文件、非root用户运行及CMD启动命令;构建后须验证uname -r、ldd --version和cat /etc/kylin-release。

选择麒麟官方基础镜像作为FROM起点
必须使用银河麒麟官方发布的Docker镜像作为基础层,不可用CentOS、Ubuntu等通用镜像替代,否则会导致glibc版本错配、systemd服务异常、麒麟特有安全模块缺失等问题。从cr.kylinos.cn私有仓库拉取最新稳定版镜像,例如v10-sp3-2403系列。
执行命令:docker pull cr.kylinos.cn/v10sp3-2403/kylin-server-v10-sp3-2403-general-alpha20-x86_64-platform:202405
【必须确认镜像标签与当前业务系统要求的内核版本、GLIBC ABI严格一致】。若业务依赖Kylin V10 SP2,则不可混用SP3镜像——ABI不兼容将导致容器内二进制程序直接报“cannot execute binary file: Exec format error”。
编写最小化Dockerfile适配麒麟环境
在空目录下创建Dockerfile文件,内容按顺序编写:
第一步:声明基础镜像与维护者信息FROM cr.kylinos.cn/v10sp3-2403/kylin-server-v10-sp3-2403-general-alpha20-x86_64-platform:202405MAINTAINER dev-team@yourcompany.com
第二步:创建必要目录结构并预置中文locale支持RUN mkdir -p /usr/lib/locale/zh_CN.utf8 && mkdir -p /usr/share/locale/zh_CN
这一步不能省略——麒麟默认镜像中zh_CN.utf8 locale未完整安装,后续RUN apt install或yum install会因locale缺失导致包管理器崩溃或输出乱码。
第三步:设置语言环境与时区ENV LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 TZ=Asia/ShanghaiRUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
Docker Hub (hub.docker.com)。此技能适用于所有 Docker Hub 操作,包括读取、创建、更新和删除数据。只要任务涉及 Docker Hub,就使用此技能。
第四步:更新软件源并安装业务必需工具RUN yum clean all && yum makecache && yum install -y gcc make wget curl tar gzip unzip procps-ng net-tools
注意:麒麟V10 SP3默认启用kylin-repo源,禁止手动替换为centos或epel源,否则会触发签名验证失败(GPG key mismatch)。
注入业务文件并配置启动行为
方法一:COPY本地构建产物(推荐用于已编译完成的二进制或Jar包)COPY ./app-release/ /opt/myapp/WORKDIR /opt/myappUSER nobody
这一步强制切换非root用户运行,符合麒麟等国产系统对最小权限原则的强审计要求;若继续用root运行,容器在麒麟KMS(密钥管理系统)策略下可能被拦截启动。
方法二:ADD远程构建包(适用于CI流水线自动拉取)ADD https://ci.yourcompany.com/artifacts/app-v2.3.1.tar.gz /tmp/RUN tar -xzf /tmp/app-v2.3.1.tar.gz -C /opt/ && rm -f /tmp/app-v2.3.1.tar.gz
最后声明入口命令:CMD ["/opt/myapp/start.sh"]
构建并验证麒麟兼容性
在Dockerfile所在目录执行构建命令:docker build -t myapp-kylin:v2.3.1 .
启动容器并进入交互检查关键兼容项:docker run -it --rm myapp-kylin:v2.3.1 /bin/bash
进入后立即执行三行验证命令:uname -r → 确认内核版本为麒麟定制版(含kylin字样)ldd --version → 输出glibc版本需≥2.28(麒麟V10 SP3基线)cat /etc/kylin-release → 必须能读取到发行版标识,否则说明基础镜像未正确加载
验证通过后,推送至企业私有镜像仓库:docker tag myapp-kylin:v2.3.1 reg.yourcompany.com/prod/myapp-kylin:v2.3.1docker push reg.yourcompany.com/prod/myapp-kylin:v2.3.1

















