ARM架构下银河麒麟V10系统安装最新版本Docker

概述

因项目需要,老大要在ARM服务器上的银河麒麟系统安装KubeSpere 3.3,然鹅KubeSpere 3.3需要Docker版本>= 19.3.8,银河麒麟V10 SP1和SP2官方源的Docker版本都是18.09.0,故而只有两个解决方案:

  1. KubeSpere降级
  2. 升级Docker

解决方案1- KubeSpere降级

将KubeSpere降级到3.0版本即可适用18.09.0。另外KubeSpere和Docker版本不适用主要原因来源于Kubernetes(K8S)和Docker版本的兼容问题。具体对应关系可查看下面链接 不完全的版本对应关系

最终,胳膊拧不过大腿,该方案被老大按下了

解决方案2- 升级Docker

  1. 添加CentOS-7仓库的变量
echo 7 > /etc/yum/vars/releasever 

为啥是7,我用到的是CentOS-7的软件源,你们用来其他版本的自由设置。不设置该变量,会导致Docker源失效。至于为啥失效,看下Docker源的文件就知道了。

  1. 参照Docker官方链接,添加Docker最新源
 #移除旧版本
 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

 sudo yum install -y yum-utils
 #添加安装源
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3.参照Docker官方链接

#安装最新版的Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

遇到的问题

1. 安装失败,提示 “需要:container-selinux >= 2:2.74”

X86架构下的解决方案

请参考链接

ARM架构下的解决方案

第一步:编辑repo源
vi /etc/yum.repo.d/CentOS-Base.repo, 写入以下内容

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.ustc.edu.cn/centos-altarch/$releasever/os/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-AltArch-Arm32
 
#released updates
[updates]
name=CentOS-$releasever - Updates
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirrors.ustc.edu.cn/centos-altarch/$releasever/updates/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-AltArch-Arm32
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.ustc.edu.cn/centos-altarch/$releasever/extras/$basearch/
gpgcheck=0 #跳过检测,不然会报错:fuse-overlayfs-0.7.2-6.el7_8.aarch64.rpm is not installed gpg key
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-AltArch-Arm32
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://mirrors.ustc.edu.cn/centos-altarch/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-AltArch-Arm32

第二步:获取GPG Key
不获取GPG KEY,安装部分软件会报“Error:GPG check FAILED”,当然也可以将gpgcheck=1改为gpgcheck=0去跳过校验,但是不建议。
获取GPG KEY有导入和下载两种方式,二选一即可。

1.导入

rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7
rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7-aarch64
rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-AltArch-Arm32

2.下载

cd /etc/pki/rpm-gpg
wget https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7
wget https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7-aarch64
wget https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-AltArch-Arm32

第三步:参照解决方案2的步骤3,安装最新的Docker即可

2. fuse-overlayfs-0.7.2-6.el7_8.aarch64.rpm is not installed gpg key

该问题应该是GPG Key没有安装完全导致的。我采用了比较粗暴的解决方案,将CentOS-Base.repo [extras]源的gpgcheck=1改为gpgcheck=0,跳过GPG检测。

参考链接

CentOS GPG Key
CentOS ARM源参考
不完全的K8S和Docker版本对应
解决报错container-selinux >= 2:2.74 [x86_64]

<think>好的,用户的问题是关于在离线环境下,在银河麒麟系统V10 ARM版本上安装Docker。首先,我需要确认用户的需求:他们已经有了系统,但是无法联网,需要离线安装。根据用户提供的引用内容,引用[1]和引用[2]都提到了相关的安装步骤和资源。 首先,我需要回忆银河麒麟V10 ARM架构的特点,确保Docker的版本兼容性。用户提到引用的资源是docker19.03.6的ARM版本,所以需要确认这个版本是否适用于他们的系统。然后,用户已经下载了离线安装包,可能需要检查安装包的完整性,比如MD5或SHA256校验。 接下来,安装步骤可能包括安装依赖包。离线环境下,用户需要提前下载所有依赖的deb包,这可能包括containerd、docker-ce-cli等。需要确保这些依赖包与Docker版本兼容,并且适用于ARM架构。 然后,安装Docker的deb包,使用dpkg命令。安装完成后,启动Docker服务,并设置开机自启。用户之前可能遇到安装完成但服务未启动的情况,所以需要明确提醒启动服务的命令,如systemctl start docker,并验证状态。 另外,用户可能需要将当前用户加入docker组,以便无需sudo运行docker命令,这一步也是需要注意的,避免权限问题。 在问题解答中,要分步骤说明,确保清晰。同时,用户可能遇到的问题包括依赖缺失、安装包损坏、服务启动失败等,需要给出排查建议,比如使用dpkg -i安装依赖,使用md5sum检查文件完整性,查看日志等。 最后,生成相关问题,帮助用户进一步了解可能遇到的后续问题,比如版本升级、镜像导入、服务故障处理等。这些问题需要基于常见的Docker管理任务,确保覆盖用户可能的需求。 需要确保回答中的命令准确,特别是针对ARM架构的注意事项,避免直接复制x86的命令。同时,引用标记要正确对应,引用[1]和引用[2]的内容要正确关联到步骤中的具体部分,比如安装完成后的验证步骤引用[1],Docker的作用引用[2]。 总结来说,回答需要结构清晰,步骤详细,涵盖准备、安装、验证和问题排查,同时提供相关问题引导用户进一步学习。</think>### 离线安装Docker步骤详解(银河麒麟V10 ARM64) #### 1. **准备离线安装包** - 从可靠来源获取适配**ARM架构**的Docker离线安装包(如`docker-ce_19.03.6~3-0~kylin-b1_arm64.deb`)[^2]。 - 下载依赖包:`containerd`、`docker-ce-cli`等,确保版本与Docker主包兼容。 #### 2. **安装依赖环境** ```bash # 手动安装依赖包(需提前下载至本地) sudo dpkg -i containerd_*.deb docker-ce-cli_*.deb ``` #### 3. **安装Docker主包** ```bash sudo dpkg -i docker-ce_19.03.6~3-0~kylin-b1_arm64.deb ``` #### 4. **验证安装** ```bash docker -v # 输出应为"Docker version 19.03.6" [^1] ``` #### 5. **启动Docker服务** ```bash sudo systemctl start docker # 启动服务 sudo systemctl enable docker # 设置开机自启 sudo systemctl status docker # 检查运行状态 ``` #### 6. **配置用户权限(可选)** ```bash sudo usermod -aG docker $USER # 将当前用户加入docker组 newgrp docker # 刷新用户组权限 ``` #### 7. **离线导入镜像(后续操作)** ```bash docker load < image.tar.gz # 加载离线镜像文件 ``` #### 常见问题排查 - **依赖缺失**:若安装报错,使用`sudo apt --fix-broken install`修复依赖。 - **服务启动失败**:检查日志`journalctl -u docker.service`。 - **安装包损坏**:验证MD5值(如`md5sum docker-ce_*.deb`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜晓码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值