麒麟V10离线安装Docker

在国产化替代加速推进的当下,越来越多政企单位开始部署搭载麒麟V10操作系统的服务器,涵盖arm64、x86_64两种主流架构。这类服务器常应用于涉密项目、内部研发等无外网访问权限的场景,如何在完全隔离的内网环境中,快速、稳定地部署Docker及验证环境(本文以Redis为例),成为很多运维人员面临的难题。

常规外网环境中,docker pull redis 即可轻松获取镜像并部署,但不同架构的麒麟V10服务器无法直接拉取非对应架构的默认镜像,且内网环境无法在线下载依赖和镜像,导致部署过程坑点重重。本文将从Docker离线安装入手,兼顾arm64、x86_64两种架构,手把手带你完成麒麟V10环境下Docker离线部署、Redis镜像离线获取与加载、容器启动与环境验证的全流程,兼顾实用性与安全性,确保新手也能跟着操作落地,Redis仅作为Docker环境部署完成后的验证工具,无需复杂配置。

一、前置说明:环境与核心思路

1.1 环境确认

本次操作针对 麒麟V10操作系统(含arm64/x86_64两种架构,arm64即aarch64,x86_64即x86),目标服务器为无外网访问权限的内网服务器。操作前需准备两台机器,且中转站机器架构建议与目标服务器一致(避免镜像架构不兼容):

  • 目标服务器:内网麒麟V10(arm64或x86_64),用于最终部署Docker和Redis(环境验证);

  • 中转站机器:能访问外网的Linux机器(优先与目标服务器同架构,arm64可选麒麟V10、华为云鲲鹏实例,x86_64可选普通Linux服务器、虚拟机;若架构不同,需额外注意镜像架构指定)。

1.2 核心思路

离线部署的核心是“外网准备、内网部署、环境验证”,整体流程可概括为3步,兼顾两种架构适配:

  1. 外网中转站:根据目标服务器架构,下载对应版本的Docker离线安装包、Redis Docker镜像,并打包保存;

  2. 内网传输:将离线安装包、镜像包通过U盘、内部文件服务器等介质,传输到麒麟V10目标服务器;

  3. 内网部署:依次完成Docker离线安装、Redis镜像加载、容器启动,通过简单命令验证Docker与Redis环境正常运行。

二、第一步:外网准备——下载Docker离线包与Redis镜像(分架构)

此步骤在能访问外网的中转站机器上操作,核心是根据目标服务器架构(arm64/x86_64),获取适配麒麟V10的Docker安装包和Redis镜像,避免架构不兼容问题。Redis仅作为环境验证,选择官方稳定版(本文以Redis 6.2.6为例,适配两种架构)。

2.1 下载麒麟V10(分架构)Docker离线安装包

麒麟V10系统基于CentOS/RHEL架构,Docker离线安装需依赖rpm包,优先选择适配对应架构的官方稳定版本(本文以Docker 20.10.24为例,分arm64、x86_64两个版本)。

操作步骤(分架构执行):

  1. 根据目标服务器架构,访问对应Docker官方rpm仓库,下载以下3个核心rpm包(后缀对应架构):

    1. arm64架构:访问 https://download.docker.com/linux/centos/8/aarch64/stable/Packages/,下载 aarch64 后缀的包:

      • containerd.io-xxx.aarch64.rpm(容器运行时依赖);

      • docker-ce-xxx.aarch64.rpm(Docker核心包);

      • docker-ce-cli-xxx.aarch64.rpm(Docker命令行工具)。

    2. x86_64架构:访问 https://download.docker.com/linux/centos/8/x86_64/stable/Packages/,下载 x86_64 后缀的包:

      • containerd.io-xxx.x86_64.rpm(容器运行时依赖);

      • docker-ce-xxx.x86_64.rpm(Docker核心包);

      • docker-ce-cli-xxx.x86_64.rpm(Docker命令行工具)。

  2. 将下载的3个rpm包放在同一目录(如 /home/docker_offline),并打包为tar压缩包(标注架构,方便后续区分),方便后续传输:

    1. arm64架构:tar -czvf docker_arm64_20.10.24.tar.gz /home/docker_offline/*.rpm

    2. x86_64架构:tar -czvf docker_x86_64_20.10.24.tar.gz /home/docker_offline/*.rpm

注意:务必确认rpm包后缀与目标服务器架构一致(arm64对应aarch64,x86_64对应x86_64),否则无法在麒麟V10上安装。

2.2 下载并打包Redis对应架构Docker镜像

Redis官方镜像包含多个架构版本,需根据目标服务器架构(arm64/x86_64),精准获取对应版本,避免下载错误架构导致无法运行。本文以Redis 6.2.6(长期支持版,稳定可靠,适配两种架构)为例,仅作为Docker环境验证工具,无需复杂配置。

操作步骤(分架构执行):

  1. 拉取正确架构的Redis镜像:

    1. 若中转站机器与目标服务器同架构(arm64/x86_64),直接拉取,Docker会自动匹配架构:docker pull redis:6.2.6

    2. 若中转站机器与目标服务器架构不同,必须指定对应平台,否则会拉取错误架构版本:

      • 目标服务器为arm64:docker pull --platform linux/arm64 redis:6.2.6

      • 目标服务器为x86_64:docker pull --platform linux/amd64 redis:6.2.6

  2. 验证镜像架构(确保与目标服务器一致): docker inspect redis:6.2.6 | grep Architecture输出结果:arm64架构对应 “Architecture”: “aarch64”,x86_64架构对应 “Architecture”: “amd64”,确认镜像正确。

  3. 打包镜像为tar文件(标注架构),便于内网传输:

    1. arm64架构: # 查看镜像ID(假设为 abcdef123456) docker images | grep redis # 打包镜像 docker save abcdef123456 -o /home/redis_arm64_6.2.6.tar

    2. x86_64架构: # 查看镜像ID(假设为 abcdef123456) docker images | grep redis # 打包镜像 docker save abcdef123456 -o /home/redis_x86_64_6.2.6.tar

  4. (可选)校验文件完整性:计算tar包的哈希值,后续传输到内网后核对,避免文件损坏:

    1. arm64架构:sha256sum /home/redis_arm64_6.2.6.tar > redis_sha256.txt

    2. x86_64架构:sha256sum /home/redis_x86_64_6.2.6.tar > redis_sha256.txt

至此,外网准备工作完成。根据目标服务器架构,将对应的Docker离线包、Redis镜像包(及redis_sha256.txt)通过安全介质,传输到内网麒麟V10目标服务器的 /home 目录下。

三、第二步:内网部署——麒麟V10安装Docker(分架构)

目标服务器为无外网权限的麒麟V10(arm64/x86_64),需根据架构,通过对应离线rpm包安装Docker,步骤如下(分架构执行):

3.1 解压Docker离线包(分架构)

1
2
3
4
5
6
cd /home
# 分架构解压,释放rpm文件
# arm64架构
tar -xzvf docker_arm64_20.10.24.tar.gz
# x86_64架构
tar -xzvf docker_x86_64_20.10.24.tar.gz

3.2 离线安装Docker依赖与核心包(分架构)

进入解压后的rpm包目录,执行安装命令(需root权限,若提示依赖缺失,需提前准备对应离线依赖包,依赖包架构需与目标服务器一致):

1
2
3
4
5
6
cd /home/docker_offline
# 安装3个rpm包(顺序无关,--nodeps可忽略依赖检查,若有依赖需提前安装)
# arm64架构
rpm -ivh --nodeps containerd.io-xxx.aarch64.rpm docker-ce-cli-xxx.aarch64.rpm docker-ce-xxx.aarch64.rpm
# x86_64架构
rpm -ivh --nodeps containerd.io-xxx.x86_64.rpm docker-ce-cli-xxx.x86_64.rpm docker-ce-xxx.x86_64.rpm

3.3 启动Docker并设置开机自启

1
2
3
4
5
6
7
8
# 启动Docker服务
systemctl start docker
# 设置开机自启(关键,避免服务器重启后Docker失效)
systemctl enable docker
# 验证Docker安装成功
docker --version
# 查看Docker运行状态(Active: active (running) 即为正常)
systemctl status docker | grep Active

若启动失败,大概率是依赖缺失或rpm包架构错误。可执行 systemctl status docker 查看错误日志,补充对应依赖或重新下载正确架构的rpm包。

第三步:内网部署——Docker加载并运行Redis(环境验证,分架构)

Docker安装完成后,即可加载提前传输的对应架构Redis镜像,启动容器并完成简单验证,确认Docker环境正常可用(Redis仅作为验证工具,无需复杂配置)。

3.1 导入Redis镜像(分架构)

将传输到 /home 目录的对应架构Redis镜像包导入Docker本地仓库:

1
2
3
4
5
6
7
8
cd /home
# 分架构导入镜像
# arm64架构
docker load -i redis_arm64_6.2.6.tar
# x86_64架构
docker load -i redis_x86_64_6.2.6.tar
# (可选)核对文件完整性,确保传输未损坏
sha256sum -c redis_sha256.txt

导入成功后,执行 docker images 会看到一个无标签(REPOSITORY和TAG为 )的镜像,需为其打上易识别的标签(标注架构),方便后续管理:

1
2
3
4
5
6
7
8
9
# 查看镜像ID(假设为 1234567890ab)
docker images
# 分架构打标签(格式:镜像名:版本-架构)
# arm64架构
docker tag 1234567890ab redis:6.2.6-arm64
# x86_64架构
docker tag 1234567890ab redis:6.2.6-x86_64
# 验证标签
docker images | grep redis

3.2 配置Redis数据持久化(可选,验证环境可省略)

若仅作为环境验证,可省略数据持久化;若需简单留存数据,可将Redis数据目录挂载到宿主机(生产环境建议配置,验证环境可跳过):

1
2
3
4
5
6
# 创建宿主机数据目录(验证环境可省略)
sudo mkdir -p /data/redis/data
# 赋予目录读写权限
sudo chmod 755 /data/redis
# 进阶:修改目录所属用户(匹配容器内默认用户,避免权限报错)
sudo chown -R 999:999 /data/redis/data

3.3 启动Redis容器(环境验证版,分架构)

使用 docker run 命令启动容器,配置端口映射、自启等基础参数,确保容器正常运行,用于验证Docker环境可用(无需复杂配置,仅开启基础服务):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 分架构启动容器,验证环境无需复杂配置
# arm64架构
docker run -d \
--name redis-server \ # 容器名称,便于管理
--restart=always \ # 容器随Docker自启,保障可用性
-p 6379:6379 \ # 端口映射:宿主机6379端口映射到容器6379端口(Redis默认端口)
# 验证环境可省略数据挂载,如需挂载添加以下一行
# -v /data/redis/data:/data \
redis:6.2.6-arm64 \ # 镜像标签(arm64架构)
--requirepass "RedisTest123!" # 简单设置密码,避免未授权访问(验证环境可选)

# x86_64架构
docker run -d \
--name redis-server \ # 容器名称,便于管理
--restart=always \ # 容器随Docker自启,保障可用性
-p 6379:6379 \ # 端口映射:宿主机6379端口映射到容器6379端口(Redis默认端口)
# 验证环境可省略数据挂载,如需挂载添加以下一行
# -v /data/redis/data:/data \
redis:6.2.6-x86_64 \ # 镜像标签(x86_64架构)
--requirepass "RedisTest123!" # 简单设置密码,避免未授权访问(验证环境可选)

参数说明(验证环境重点):

  • -d:后台运行容器,不占用终端;

  • –restart=always:服务器重启、Docker重启后,容器自动启动,便于长期验证;

  • -p 6379:6379:Redis默认端口映射,便于后续连接验证;

  • –requirepass:简单设置密码,避免内网未授权访问(验证环境可选,提升安全性)。

启动后,验证容器状态(确认Docker环境正常):

1
docker ps | grep redis-server

若 STATUS 为 Up,说明Redis容器已成功运行,Docker环境部署正常,达到环境验证目的。

四、第四步:环境验证——Redis连接测试(核心,确认环境可用)

Redis容器启动后,通过简单的连接命令,验证Docker容器运行正常、Redis服务可用,完成整个环境验证流程。

4.1 容器内连接Redis测试

1
2
3
4
5
6
7
8
# 进入Redis容器内部
docker exec -it redis-server /bin/bash
# 连接Redis(若设置了密码,需输入密码)
redis-cli
# 输入密码(若设置了--requirepass参数)
auth RedisTest123!
# 执行简单命令,验证服务可用
ping

若输出 PONG,说明Redis服务正常运行,Docker容器部署无误,环境验证通过。

4.2 宿主机连接Redis测试(可选)

1
2
3
4
5
# 宿主机直接连接Redis(需确保宿主机安装了redis-cli,或使用Docker命令间接连接)
# 方法1:使用Docker命令间接连接
docker exec -it redis-server redis-cli -a RedisTest123! ping
# 方法2:宿主机安装redis-cli后直接连接
redis-cli -h 127.0.0.1 -p 6379 -a RedisTest123! ping

若输出 PONG,说明宿主机与容器通信正常,整个Docker+Redis环境验证完成。

4.3 常见验证失败排查

  • 容器启动失败:检查镜像架构是否与目标服务器一致,执行 docker logs redis-server 查看错误日志;

  • ping命令无响应:检查容器是否正常运行(docker ps),密码是否输入正确,防火墙是否开放6379端口;

  • 防火墙开放端口(若无法连接):sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent sudo firewall-cmd --reload

五、安全加固与环境清理(验证环境可选)

若仅作为临时环境验证,使用完成后可清理容器和镜像,释放服务器资源;若需长期保留,可进行简单安全加固。

5.1 环境清理(临时验证用)

1
2
3
4
5
6
7
# 停止Redis容器
docker stop redis-server
# 删除Redis容器
docker rm redis-server
# 删除Redis镜像(按需执行)
# arm64架构:docker rmi redis:6.2.6-arm64
# x86_64架构:docker rmi redis:6.2.6-x86_64

5.2 简单安全加固(长期保留用)

  • 端口限制:通过防火墙限制仅允许内部指定IP访问6379端口,避免内网未授权访问;

  • 密码加固:设置复杂密码,避免简单密码泄露;

  • 容器资源限制:若长期保留,可限制容器内存和CPU使用,避免占用过多服务器资源: # 启动容器时添加资源限制参数(以arm64为例,x86_64替换镜像标签即可) docker run -d \ --name redis-server \ --restart=always \ -p 6379:6379 \ --memory="1g" \ # 限制容器最大使用1GB内存 --cpus="1.0" \ # 限制容器最大使用1个CPU核心 redis:6.2.6-arm64 --requirepass "RedisTest123!"

六、总结

本文完整覆盖了麒麟V10(arm64/x86_64两种架构)内网环境下,Docker离线安装、Redis(环境验证版)离线部署与测试的全流程,核心要点是“架构匹配”和“环境验证”——确保Docker安装包、Redis镜像均与目标服务器架构一致,提前在外网完成资源准备,内网仅需执行安装、加载、启动和简单测试,即可完成Docker环境验证。

整个流程避开了源码编译、依赖冲突等坑点,通过Docker容器化方式,保证了环境一致性和部署便捷性,适用于政企单位、涉密项目等无外网场景的Docker环境验证。Redis仅作为验证工具,配置简单、操作便捷,能快速确认Docker环境部署成功;若需部署其他Docker应用,可参考本文“外网准备-内网部署”的思路,替换对应镜像即可。

若实际操作中遇到问题,优先查看容器日志和系统日志,大部分错误均可通过日志定位并解决;两种架构的核心操作一致,仅需注意安装包和镜像的架构区分,新手也能轻松落地。