总体思路:
先看现有软件源是否能够安装docker;
再看Centos下怎么安装 ;
Centos下需要按照aarch64来进行相关安装;
使用国内镜像方便安装;

1. 查看版本

有两种方式,主要是想确定麒麟系统对应的具体的centos版本,这个目前还没有好办法确定具体的centos版本。

uname -a
Linux kylin-node1 4.19.90-23.8.v2101.ky10.aarch64 #1 SMP Mon May 17 17:07:38 CST 2021 aarch64 aarch64 aarch64 GNU/Linux

cat /proc/version 
Linux version 4.19.90-23.8.v2101.ky10.aarch64 (KYLINSOFT@localhost.localdomain) (gcc version 7.3.0 (GCC)) #1 SMP Mon May 17 17:07:38 CST 2021

1. 1 增加软件源

软件源在以前的文章有提到过

vi /etc/apt/source.list

在里面添加

deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.0 main restricted universe multiverse

使用下面的命令可以更新软件源

yum update
ls /etc/yum.repos.d/

确认下yum-config-manager可用,如果不可用使用下面的命令安装

yum install -y yum-utils   device-mapper-persistent-data   lvm2
yum-config-manager -h

1. 2 yum安装docker的命令

下面这个命令是一直尝试的命令,每修改一步都尝试使用下面的命令确认是否可以安装,直到成功。反正银河麒麟官方源没法成功使用。

yum install docker-ce docker-ce-cli containerd.io

2. 安装仓库

最近被阿里事件弄烦了 ,本想使用清华源,但是清华源里面的repo地址竟然还是docker.hub的地址,默默的切换为阿里的仓库。

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum update

但是这个源里面需要识别当前centos的版本,因为我们使用麒麟系统,所以需要自己手动输入版本号。替换basearch前面的$releasever为7(不知道具体的centos版本,预估的版本,存在一定风险)

vi /etc/yum.repos.d/docker-ce.repo

举例如下:

https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1

2.1 安装缺少的依赖container-selinux

使用前面的1.2中命令提醒缺少container-selinux。这个镜像在仓库里面有,需要注意清华的仓库centos有三个仓库,需要选择centos-altarch进行查找具有arm架构编译的包。
下载下面的包,选择了一个不那么高的版本

wget https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7/extras/aarch64/Packages/container-selinux-2.107-1.el7_6.noarch.rpm

幸运的是可以使用yum安装依赖,安装完成后,rpm安装上述下载的包。

yum install policycoreutils-python
rpm -ivh container-selinux-2.107-1.el7_6.noarch.rpm

2.2 安装缺少的依赖slirp4netns和fuse-overlayfs

在清华的仓库下载

     wget https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7/extras/aarch64/Packages/slirp4netns-0.4.3-4.el7_8.aarch64.rpm
     wget https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7/extras/aarch64/Packages/fuse-overlayfs-0.7.2-6.el7_8.aarch64.rpm

slirp4netns一次安装成功,fuse-overlayfs需要libfuse3.so支持,本以为需要编译安装,试了多次后,使用yum安装。

rpm -ivh slirp4netns-0.4.3-4.el7_8.aarch64.rpm 
yum install fuse3
rpm -ivh fuse-overlayfs-0.7.2-6.el7_8.aarch64.rpm 

3. Docker安装

再次执行1.2中的命令,即可。

yum install docker-ce docker-ce-cli containerd.io


Last metadata expiration check: 1:19:24 ago on 2021年08月14日 星期六 16时10分45秒.
Dependencies resolved.
==============================================================================================
 Package                        Architecture Version              Repository             Size
==============================================================================================
Installing:
 containerd.io                  aarch64      1.4.9-3.1.el7        docker-ce-stable       23 M
 docker-ce                      aarch64      3:20.10.8-3.el7      docker-ce-stable       15 M
 docker-ce-cli                  aarch64      1:20.10.8-3.el7      docker-ce-stable       25 M
Installing dependencies:
 docker-ce-rootless-extras      aarch64      20.10.8-3.el7        docker-ce-stable      7.3 M
 libcgroup                      aarch64      0.41-23.ky10         ks10-adv-os            98 k

Transaction Summary
==============================================================================================
Install  5 Packages

Total download size: 71 M
Installed size: 314 M
Is this ok [y/N]: y

总结

软件源需要逐步维护起来,这个是一个漫长的过程,希望国产软件越来越好。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐