当前位置: 首页 > news >正文

保姆级教程:在银河麒麟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.repo

2.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 makecache

2.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.rpm

4. 离线安装与配置

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 8bce43f

4.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"] } EOF

4.5 启动并启用Docker服务

设置开机自启并立即启动服务:

systemctl enable docker systemctl start docker

检查服务状态:

systemctl status docker

5. 常见问题与高级配置

5.1 解决CRI兼容性问题

如果计划使用Kubernetes,可能需要配置containerd启用CRI插件。编辑配置文件:

vi /etc/containerd/config.toml

确保以下行被注释掉:

# disabled_plugins = ["cri"]

然后重启containerd服务:

systemctl restart containerd

5.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 EOF

5.3 多服务器批量部署策略

对于需要批量部署的环境,可以考虑以下优化方案:

  1. 创建本地YUM仓库

    • 将下载的RPM包设置为本地仓库
    • 其他服务器可直接从该仓库安装
  2. 编写自动化脚本

    • 将安装步骤封装为Shell脚本
    • 通过Ansible等工具批量执行
  3. 制作系统镜像

    • 在基准机上完成安装和配置
    • 制作系统镜像用于批量部署

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 安全加固建议

  1. 启用用户命名空间

    "userns-remap": "default"
  2. 限制容器权限

    "default-ulimits": { "nofile": { "Name": "nofile", "Hard": 64000, "Soft": 64000 } }
  3. 定期更新

    • 虽然离线环境更新不便,但仍应制定定期更新计划
    • 可通过下载新版RPM包进行离线更新
http://www.jsqmd.com/news/940984/

相关文章:

  • 亚马逊云科技全面发力 Agentic AI:从桌面助手到垂直场景,联手 OpenAI 重构企业生产力
  • Seraphine:基于LCU API的英雄联盟数据查询与智能辅助工具技术解析
  • 极空间自带的文件管理不够用?我用File Browser补上了!
  • 从STM32转战GD32E230:GPIO配置对比与快速上手避坑指南
  • 鸿蒙数学 108 篇 第四十三篇:四象运算基础应用
  • uni-app一键接入腾讯云人脸核身:身份证OCR+动作活体+1:1比对全链路支持
  • 3步搞定网盘直链下载助手:告别限速的全能解决方案
  • 别再滥用eval了!Python安全解析字符串的‘守护神’ast.literal_eval保姆级教程
  • 微软Visual Studio“快车道”Beta测试模式:从持续交付到开发者生态重塑
  • 告别盲目点击!深入解析Keil5工具栏:STM32开发中的高频快捷键与实战场景
  • 开发家庭月度生活开销画像分析程序,可视化消费结构,定位非理性消费场景。
  • 基于Arduino与RFID的智能家居追踪系统DIY实战
  • 智慧树自动刷课插件:终极学习助手快速上手指南
  • 基于MPU-9250与Arduino的3D记忆游戏立方体设计与实现
  • RTX Spark重磅来袭:知识图谱+AI Agent,重新定义未来个人电脑
  • 智能插座DIY避坑指南:ESP8266配BL0942,这些硬件设计和软件BUG你绕开了吗?
  • 从GPON到400G:家庭宽带光猫里的模块和数据中心的有啥不一样?
  • 告别PyTorch依赖:用ONNX Runtime在CPU上高效运行BGE中文向量模型
  • Nodejs零基础入门:借助快马平台生成你的第一个HTTP服务器
  • FPGA图像处理避坑指南:从OV7725采集到HDMI输出,帧差法目标跟踪的完整数据流解析
  • 从医学影像到街景理解:U-Net模型跨界应用全指南(含数据准备与模型微调技巧)
  • 绿联科技上线开发者平台,为什么说这是NAS行业的一个关键落子?
  • ENVI FLAASH大气校正报错?别慌,先检查你的高程数据准不准(附Landsat8实操避坑)
  • 双系统安装翻车实录:我是如何搞崩Win10又成功救回的(戴尔+Ubuntu 20.04)
  • Buck电路PID补偿器设计:从理论零极点配置到Multisim/PSIM仿真验证全流程
  • SpringBoot OAuth2单点登录实战包:含认证中心、Java客户端及一键部署指南
  • 传统觉得步数越多越养生,编写程序,结合体重,年龄,计算每日最优步数,判断过量运动的身体负担等级。
  • 鸿蒙数学 108 篇 第四十四篇:四则体系终极闭环
  • 如何在Windows上轻松管理Electron应用asar文件:WinAsar终极指南
  • .NET 2.0环境下可直接编译的WebSocket服务与客户端(支持WS/WSS)