银河麒麟V10(Tercel)服务器版Docker安装与配置全指南

张开发
2026/4/13 11:32:02 15 分钟阅读

分享文章

银河麒麟V10(Tercel)服务器版Docker安装与配置全指南
1. 银河麒麟V10服务器版环境准备在开始安装Docker之前我们需要先确认系统环境是否符合要求。银河麒麟V10Tercel服务器版作为国产操作系统的代表其底层架构与常见的CentOS或Ubuntu有所不同因此需要特别注意系统版本和硬件架构的匹配问题。首先打开终端输入以下命令查看系统版本信息cat /etc/kylin-release正常情况下会显示类似Kylin Linux Advanced Server release V10 (Tercel)的信息。我遇到过一些用户反馈命令执行后没有输出这种情况通常是因为使用了非服务器版本的系统建议重新下载官方镜像。接着确认系统架构这对后续选择正确的Docker安装包至关重要uname -p银河麒麟V10服务器版常见的有aarch64和x86_64两种架构本文以aarch64为例。如果你使用的是x86架构后续下载Docker时需要选择对应的版本。内核版本检查也很关键Docker要求内核版本不低于3.10uname -r建议在安装前更新系统到最新版本可以执行yum update -y更新完成后重启系统。这里有个小技巧如果系统长时间没有更新建议分批执行更新先更新基础包再更新其他组件避免一次性更新太多导致依赖冲突。2. Docker安装详细步骤2.1 获取Docker二进制包不同于常见的通过包管理器安装方式在银河麒麟系统上我们采用二进制安装的方式更可靠。首先访问Docker官方下载页面找到适合aarch64架构的稳定版本。我实测过多个版本推荐使用20.10.7这个长期支持版本wget https://download.docker.com/linux/static/stable/aarch64/docker-20.10.7.tgz如果下载速度慢可以尝试国内的镜像源。下载完成后先验证文件的完整性sha256sum docker-20.10.7.tgz将输出结果与官网提供的校验值对比确保文件没有损坏或被篡改。2.2 解压与安装解压下载的压缩包tar -zxvf docker-20.10.7.tgz解压后会得到一个docker目录里面包含所有Docker运行所需的二进制文件。将这些文件移动到系统PATH目录mv docker/* /usr/bin/这里有个容易踩的坑直接运行dockerd可能会报权限错误。需要先给二进制文件添加执行权限chmod x /usr/bin/dockerd /usr/bin/docker测试启动Docker守护进程dockerd 如果看到类似API listen on /var/run/docker.sock的提示说明Docker已经可以正常运行。按CtrlC停止测试。3. 配置系统服务3.1 创建systemd服务文件为了让Docker作为系统服务运行需要创建service文件vi /usr/lib/systemd/system/docker.service将以下内容粘贴到文件中[Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target [Service] Typenotify ExecStart/usr/bin/dockerd ExecReload/bin/kill -s HUP $MAINPID LimitNOFILEinfinity LimitNPROCinfinity TimeoutStartSec0 Delegateyes KillModeprocess Restarton-failure StartLimitBurst3 StartLimitInterval60s [Install] WantedBymulti-user.target保存后设置权限并重载systemd配置chmod x /usr/lib/systemd/system/docker.service systemctl daemon-reload3.2 启动与验证现在可以启动Docker服务了systemctl start docker设置开机自启systemctl enable docker验证安装是否成功docker version docker info如果看到客户端和服务端的版本信息恭喜你已经成功安装Docker。我遇到过systemctl start docker失败的情况大多数是因为SELinux或防火墙的问题可以暂时关闭它们测试setenforce 0 systemctl stop firewalld4. 优化配置与镜像加速4.1 配置daemon.json创建配置文件目录和文件mkdir -p /etc/docker vi /etc/docker/daemon.json输入以下配置内容{ registry-mirrors: [ https://pee6w651.mirror.aliyuncs.com, https://registry.docker-cn.com, http://hub-mirror.c.163.com, https://docker.mirrors.ustc.edu.cn ], data-root: /data/docker, log-driver: json-file, log-opts: { max-size: 200m, max-file: 3 } }这里有几个实用配置项registry-mirrors使用国内镜像加速下载data-root修改Docker默认存储位置log-opts限制日志大小避免磁盘占满应用配置需要重启Docker服务systemctl restart docker4.2 存储路径优化默认情况下Docker会把镜像和容器存储在/var/lib/docker目录这在生产环境中可能会遇到磁盘空间不足的问题。我们可以将其迁移到更大的分区首先停止Docker服务systemctl stop docker然后迁移现有数据mkdir -p /data/docker rsync -avz /var/lib/docker/ /data/docker/修改daemon.json中的data-root路径后启动服务。建议定期清理无用镜像和容器docker system prune -f5. 常见问题排查5.1 网络连接问题在银河麒麟系统上Docker容器可能会遇到网络连接问题。如果发现容器无法访问外网可以检查以下配置iptables -L确保没有规则阻止Docker的网络流量。如果需要可以添加规则iptables -I INPUT -p tcp --dport 2375 -j ACCEPT5.2 权限问题普通用户执行docker命令时可能会报权限错误解决方法是将用户加入docker组usermod -aG docker $USER然后退出重新登录使配置生效。5.3 性能调优对于生产环境建议调整内核参数echo vm.max_map_count262144 /etc/sysctl.conf sysctl -p这个参数对运行数据库类容器特别重要。另外可以限制Docker的内存使用dockerd --memory 2GB或者在daemon.json中配置{ default-runtime: runc, runtimes: { runc: { path: runc } }, oom-score-adjust: -500 }6. 进阶配置建议6.1 安全加固生产环境中使用Docker需要考虑安全性。首先确保使用最新版本的Docker然后可以启用用户命名空间隔离dockerd --userns-remapdefault或者在daemon.json中配置{ userns-remap: default }6.2 监控与日志建议配置Docker日志轮转避免日志文件过大。编辑logrotate配置vi /etc/logrotate.d/docker添加以下内容/var/lib/docker/containers/*/*.log { rotate 7 daily compress delaycompress missingok copytruncate }对于监控可以安装cAdvisordocker run \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --publish8080:8080 \ --detachtrue \ --namecadvisor \ google/cadvisor:latest6.3 容器资源限制为容器设置资源限制可以防止单个容器占用过多资源docker run -it --cpus.5 --memory512m ubuntu /bin/bash这会将容器限制为最多使用0.5个CPU核心和512MB内存。对于Java应用还需要设置-XX:UseContainerSupport参数docker run -it -e JAVA_OPTS-XX:UseContainerSupport openjdk:87. 实际应用案例7.1 部署MySQL数据库在银河麒麟上运行MySQL容器需要注意文件系统权限docker run --name mysql \ -e MYSQL_ROOT_PASSWORDyourpassword \ -v /data/mysql:/var/lib/mysql \ -p 3306:3306 \ --restart always \ -d mysql:5.7 \ --character-set-serverutf8mb4 \ --collation-serverutf8mb4_unicode_ci7.2 运行Nginx服务对于Web服务建议这样运行docker run --name nginx \ -v /path/to/nginx.conf:/etc/nginx/nginx.conf \ -v /path/to/html:/usr/share/nginx/html \ -v /path/to/logs:/var/log/nginx \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ -d nginx7.3 构建自定义镜像在银河麒麟系统上构建镜像时建议使用多阶段构建减少镜像大小FROM aarch64/ubuntu:18.04 as builder RUN apt-get update apt-get install -y build-essential COPY . /app WORKDIR /app RUN make FROM aarch64/ubuntu:18.04 COPY --frombuilder /app/bin /usr/local/bin CMD [/usr/local/bin/myapp]构建命令docker build -t myapp .

更多文章