保姆级教程:在银河麒麟V10 ARM64服务器上,用yum downloadonly搞定Docker 26.1.0离线安装包
银河麒麟V10 ARM64服务器离线部署Docker 26.1.0全攻略
在国产化操作系统逐步普及的今天,银河麒麟V10作为一款基于Linux内核的国产操作系统,在政府、金融、能源等关键领域得到了广泛应用。特别是在ARM64架构的服务器上,银河麒麟V10展现出了优异的性能和稳定性。然而,由于安全合规要求,许多部署环境往往需要离线安装各类软件,Docker作为当前最流行的容器化技术,其离线部署成为系统管理员必须掌握的技能。
本文将详细介绍在银河麒麟V10 SP3 ARM64服务器上,如何精准下载Docker 26.1.0及其所有依赖包,并完成离线安装的全过程。不同于简单的安装指南,我们将深入探讨版本选择策略、依赖包完整性校验等关键细节,帮助您在无外网环境下高效完成部署。
1. 环境准备与前置检查
在开始下载Docker安装包之前,我们需要对系统环境进行全面的检查和准备。银河麒麟V10 SP3基于CentOS 8构建,因此在软件包管理上与CentOS 8保持兼容,这为我们使用yum工具提供了便利。
首先确认系统版本信息:
nkvers输出应显示类似以下内容:
Kylin Linux Advanced Server release V10 (Sword)接下来,我们需要清理系统中可能存在的旧版本Docker及其相关组件。执行以下命令彻底卸载旧版本:
yum remove docker \ containerd.io \ docker-runc \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine \ docker-compose-plugin \ docker-buildx-plugin关键注意事项:
- 如果系统从未安装过Docker,此步骤可以跳过
- 卸载完成后建议重启系统,确保所有残留文件被清除
- 对于生产环境,建议先备份重要数据再执行卸载操作
2. 配置YUM仓库与版本策略
由于Docker官方仅提供CentOS版本的RPM仓库,我们需要对银河麒麟V10进行适当配置,使其能够正确识别和使用这些仓库。
2.1 添加Docker官方仓库
首先安装必要的yum工具:
yum install -y yum-utils然后添加Docker CE仓库:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo2.2 适配银河麒麟V10 SP3
银河麒麟V10 SP3对应CentOS 8,我们需要设置相应的环境变量:
echo "8" > /etc/yum/vars/centos_version验证设置是否生效:
cat /etc/yum/vars/centos_version接着修改仓库配置文件,替换变量引用:
sed -i 's/$releasever/$centos_version/g' /etc/yum.repos.d/docker-ce.repo最后更新仓库缓存:
yum makecache2.3 确定安装版本
Docker 26.1.0由多个组件构成,我们需要分别查询各组件的确切版本:
yum list docker-ce --showduplicates | sort -r yum list docker-ce-cli --showduplicates | sort -r yum list docker-buildx-plugin --showduplicates | sort -r yum list docker-compose-plugin --showduplicates | sort -r对于Docker 26.1.0,我们通常需要以下组件版本:
- docker-ce-3:26.1.0-1.el8
- docker-ce-cli-1:26.1.0-1.el8
- docker-buildx-plugin-0.14.0-1.el8
- docker-compose-plugin-2.6.0-3.el8
3. 下载离线安装包
3.1 创建下载目录
建议在root用户下创建专用目录存放下载的RPM包:
mkdir -p /root/docker-rpm/3.2 使用downloadonly下载
yum的--downloadonly选项允许我们只下载软件包而不安装:
yum install --downloadonly --downloaddir=/root/docker-rpm/ \ docker-ce-3:26.1.0-1.el8 \ docker-ce-cli-1:26.1.0-1.el8 \ docker-buildx-plugin-0.14.0-1.el8 \ docker-compose-plugin-2.6.0-3.el8重要提示:
- 此命令会下载指定版本及其所有依赖包
- 如果只想下载最新版本,可以省略具体版本号
- 下载完成后务必检查包是否完整
3.3 验证下载结果
列出下载目录内容,确认所有必要包已下载:
ls -l /root/docker-rpm/典型输出应包含以下关键包(具体版本可能略有差异):
docker-ce-26.1.0-1.el8.aarch64.rpm docker-ce-cli-26.1.0-1.el8.aarch64.rpm containerd.io-1.6.28-3.1.el8.aarch64.rpm docker-buildx-plugin-0.14.0-1.el8.aarch64.rpm docker-compose-plugin-2.6.0-3.el8.aarch64.rpm4. 离线安装与配置
4.1 传输安装包到目标服务器
将/root/docker-rpm/目录下的所有文件复制到目标服务器的相同路径。可以使用U盘、内网共享或安全传输工具完成此操作。
4.2 执行离线安装
在目标服务器上,进入RPM包目录并执行安装:
cd /root/docker-rpm rpm -Uvh --nodeps *.rpm--nodeps选项会忽略依赖检查,因为在下载时我们已经确保了所有依赖的完整性。
4.3 验证安装
检查Docker版本确认安装成功:
docker -v预期输出:
Docker version 26.1.0, build 8bce43f4.4 配置Docker
创建专用数据存储目录:
mkdir -p /data/docker配置Docker守护进程:
cat > /etc/docker/daemon.json << EOF { "data-root": "/data/docker", "exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://registry.docker-cn.com"] } EOF4.5 启动并启用Docker服务
设置开机自启并立即启动服务:
systemctl enable docker systemctl start docker检查服务状态:
systemctl status docker5. 常见问题与高级配置
5.1 解决CRI兼容性问题
如果计划使用Kubernetes,可能需要配置containerd启用CRI插件。编辑配置文件:
vi /etc/containerd/config.toml确保以下行被注释掉:
# disabled_plugins = ["cri"]然后重启containerd服务:
systemctl restart containerd5.2 解决crictl警告
执行crictl命令时可能会遇到端点未配置的警告。创建配置文件解决:
cat <<EOF | sudo tee /etc/crictl.yaml runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 10 debug: false EOF5.3 多服务器批量部署策略
对于需要批量部署的环境,可以考虑以下优化方案:
创建本地YUM仓库:
- 将下载的RPM包设置为本地仓库
- 其他服务器可直接从该仓库安装
编写自动化脚本:
- 将安装步骤封装为Shell脚本
- 通过Ansible等工具批量执行
制作系统镜像:
- 在基准机上完成安装和配置
- 制作系统镜像用于批量部署
6. 性能优化与安全建议
6.1 存储驱动选择
银河麒麟V10 ARM64上推荐使用overlay2存储驱动。检查当前驱动:
docker info | grep "Storage Driver"如果未使用overlay2,可以在/etc/docker/daemon.json中添加配置:
"storage-driver": "overlay2"6.2 日志管理
生产环境中,Docker日志可能快速增长,建议配置日志轮转和大小限制:
{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }6.3 网络优化
对于ARM64架构,可以考虑使用以下网络配置提升性能:
{ "mtu": 1450, "default-address-pools": [ { "base": "172.80.0.0/16", "size": 24 }, { "base": "172.90.0.0/16", "size": 24 } ] }6.4 安全加固建议
启用用户命名空间:
"userns-remap": "default"限制容器权限:
"default-ulimits": { "nofile": { "Name": "nofile", "Hard": 64000, "Soft": 64000 } }定期更新:
- 虽然离线环境更新不便,但仍应制定定期更新计划
- 可通过下载新版RPM包进行离线更新
