Docker使用问题

坑点一:

一、问题背景

  docker pull centos 不指定tag,拉取的latest为centos8。 yum下载的时候报错

错误代码

关键信息:Cannot download repodata/repomd.xml: All mirrors were tried

二、解决方案

  这里其实给大家一个建议,也算是自己的一个心得吧:很多时候我们看到报错,都会习惯性的复制报错信息,然后百度或者谷歌搜索看别人是如何解决的。但是很多时候,问题并不一致,或者说,报错的关键信息复制的不对的话,也很容易就走到岔路上去。很多时候,我建议是好好阅读一下报错信息,了解主要是因为什么报错,然后再去对症下药,有针对性的搜索和过滤更适合的解决方案。

所以呢,其实我最开始没有认真阅读报错信息,想当然的复制了第一行报错:Errors during downloading metadata for repository ‘base’,然后去搜索,最后走了很多弯路,试了网上别人的很多种解决方案,都不生效。最后,静下心来,好好阅读了一下报错全部信息,找到了关键报错:Cannot download repodata/repomd.xml,才发现了问题所在。

所以这里就主要说一下最终解决,其实主要还是官方的问题,详见阿里云官方文档(更明细):

https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11CyvQPT

1、原因分析:

  centos8项目官方已于2021年底停止,相关源已无法使用,所以网上22年前的换源教程都已无法使用。

2、如何解决:

(1)进入配置文件内,删除所有的.repo文件(也可以备份)

进入配置文件夹

cd /etc/yum.repos.d/

删除旧的配置文件

rm *.repo

输入“y”回车确认

(2)ls 确保该目录下的.repo文件已完全删除(重要)

  注意必须全部删除,或全部移除备份到别处,否则就算你切换的 yum 源,也还是会报上面的错

(3)下载可以用的.repo文件

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

如果你没有安装wget,也可以用下面命令:

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

(4)清除缓存,及运行 yum makecache 生成缓存

yum clean all

yum makecache

3、如果你是非阿里云ECS用户,可能回会出现 Couldn’t resolve host ‘mirrors.cloud.aliyuncs.com’ 的信息,不过不影响使用。你可以修改相关的配置:

sed -i -e ‘/mirrors.cloud.aliyuncs.com/d’ -e ‘/mirrors.aliyuncs.com/d’ /etc/yum.repos.d/CentOS-Base.repo

坑点二:

按上述方法配置完yum源后,再次用yum下载,报错如下

原因为语言环境问题,下载语言包,并设置,即可正常使用yum安装

坑点三:容器中使用systemctl报错

报错为:System has not been booted with systemd as init system (PID 1) 。需要修改docker容器启动方式
解决方案:https://blog.csdn.net/weixin_42303729/article/details/135120297

坑点四:使用docker下载的镜像部署应用,会发现缺少很多组件,是由于docker下载的镜像只有200多M,正常最小化安装的centos8也有900M,所以不要用来部署应用

posted @ 2024-08-06 16:20  肉食主义  阅读(27)  评论(0编辑  收藏  举报