银河麒麟V10服务器安装Docker

吐槽

        因为工作原因,公司的对接政府项目,必须使用国产服务器。那么痛苦由此产生,所谓的国产系统,就是在二次开发的时候加上各种权限限制,而他们改了包名导致在安装yum或者rpm出现了各种依赖问题。(本人被这个依赖问题,搞得苦不堪言)。例如 CentOS7 的 rpm 包标识为 el7 麒麟上面则改成了 ky10,在安装一些软件时由于依赖问题导致同名包安装不上,如果卸载系统上已有包可能会出现系统某些软件服务出现问题,如果不卸载则只能带上痛苦面具去解决冲突。

        据说银河麒麟基于 CentOS7,但是通过测试最终添加 CentOS8 的源才可以用,因为他喵的 CentOS7 只有 x86_64,而 CentOS8 才有 aarch64,厂商的话都信不得哦。手动配置了 CentOS7 的源后,yum makecache 可以正常缓存,但是 yum -y update 会出现多个依赖错误问题,通过 yum -y install <package-name> 可以安装软件,但是依赖问题依然很难受。

        最终在配置好 CentOS7与 Docker-ce 官方源后由于依赖问题放弃了通过 yum 在线安装,直接下载如下 rpm 包安装依然不行。

方案一  在线下载安装Docker

1.  添加阿里源 

wget -O /etc/yum.repos.d/CentOS-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo

 2.  添加Docker源 

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

 在安装 docker 的时候,需要注意修改 docker-ce.repo文件Centos-7.repo文件内 $releasever批量替换成 7,原因是在麒麟服务器操作系统V10中 $releasever被修改为了 10,而我们需要使用 centos 7的镜像源,如果你不替换,基本上仓库的每一个地址都是404

3.  替换$releasever

sudo sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-7.repo
sudo sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo

4.  建立yum缓存

yum makecache

5.  配置daemon.json 

文件位置 /etc/docker/daemon.json

{
    "registry-mirrors":[
        "https://pee6w651.mirror.aliyuncs.com",
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn"
],
    "data-root":"/data/docker",
    "log-driver":"json-file",
    "log-opts":{
        "max-size":"200m","max-file":"3"
    }
}

 重新加载daemon.json文件

sudo systemctl daemon-reload

安装Docker

官网链接  https://docs.docker.com/engine/install/centos/

 6.  移除Docker的历史版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

7.   安装 yum-utils 软件包

sudo yum install -y yum-utils

8.   Docker CE 仓库添加到 YUM 包管理器中

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

执行时出现  以下错误
[root@localhost /]# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Traceback (most recent call last):
  File "/usr/bin/yum-config-manager", line 6, in <module>
    import yum
ImportError: No module named yum

如果你没有出现这个报错恭喜你了,你可以直接调到    9.启动Docker 

不用再这里浪费时间。

那我们看看这个报错原因和解决办法

报错显示在导入yum时提示没有yum这个包,但是不可能没有啊,本着打破砂锅问到底的态度,去度娘了好多。

根本原因:yum是python写的,所以执行yum需要python,查看系统安装的Python,有多个版本

[root@localhost /]# whereis python
python: /usr/bin/python /usr/bin/python2.6 /usr/bin/python2.6-config /usr/lib/python2.6 /usr/lib64/python2.6 /usr/local/bin/python2.7 /usr/local/bin/python /usr/local/bin/python2.7-config /usr/local/lib/python2.7 /usr/include/python2.6 /usr/share/man/man1/python.1.gz

这我们就明白了,是因为Python的版本冲突导致。

输入Python,查看使用的版本,Python指向 2.7版本

[root@localhost /]# python
Python 2.7.16 (default, Jul  9 2020, 06:37:01)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

查看Python的软链接


[root@localhost /]# ll /usr/bin/ | grep python
-rwxr-xr-x    1 root root      20200 6月  19 2018 abrt-action-analyze-python
lrwxrwxrwx    1 root root         24 7月  12 2018 python -> /usr/local/bin/python2.7
lrwxrwxrwx    1 root root          6 7月  11 2018 python2 -> python
-rwxr-xr-x    2 root root       9032 8月  18 2016 python2.6
-rwxr-xr-x    2 root root       9032 8月  18 2016 python2.6.6
-rwxr-xr-x    1 root root       1418 8月  18 2016 python2.6-config

 实际python指向了2.7版本。而yum的python版本呢?

[root@localhost /]# cat /usr/bin/yum

#!/usr/bin/python2.6
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

所以现在很清楚了,用yum执行config命令时,yum本身的python是2.6版本的,而执行的config却指向2.7,所以报错了。

怎么办?要么改yum的python版本,要么改config的,试试修改config

[root@localhost /]#  vi /usr/bin/yum-config-manager

#!/usr/bin/python2.6 -tt

再次执行 执行成功

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker 引擎、CLI 和 containerd.io

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

9.启动Docker 

sudo systemctl start docker 

查看是否启动成功

[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

到这一步恭喜你,你的Docker已经安装成功了!

已经看到这里了,点个赞在走呗

如果这种方式没有帮到你,请看下一篇文章

Docker 离线安装 !!!

  • 27
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值