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