錯誤描述
學習docker過程中,基于 centos 鏡像自定義新的鏡像。拉取一個Centos鏡像,并運行容器,容器安裝vim,報錯了。
報錯:Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
問題分析
?第一種可能的情況便是網絡連接問題。檢查是否可以連接外部網絡,可以使用 ping baidu.com 查看是否有丟包情況。如果丟包,則進一步檢查網絡連接是否正常;如果沒有丟包,繼續閱讀下文
?那么第二種情況,便是 CentOS 已經停止維護的問題。2020 年 12 月 8 號,CentOS 官方宣布了停止維護 CentOS Linux 的計劃,并推出了 CentOS Stream 項目,CentOS Linux 8 作為 RHEL 8 的復刻版本,生命周期縮短,于 2021 年 12 月 31 日停止更新并停止維護(EOL),更多的信息可以查看 CentOS 官方公告。如果需要更新 CentOS,需要將鏡像從 mirror.centos.org 更改為 vault.centos.org
解決方案
🥎那么針對上面提到的第二種情況,給出的解決方法如下:
🔔 首先,進入到 yum 的 repos 目錄
cd /etc/yum.repos.d/
🔔其次,修改 centos 文件內容
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
🔔 然后,生成緩存更新(第一次更新,速度稍微有點慢,耐心等待 2min 左右)
yum makecache
🔔 最后,運行 yum update 并重新安裝 vim
yum update -y
yum -y install vim
參考
https://blog.csdn.net/weixin_43252521/article/details/124409151