使用Dockerfile時(shí)Error: Failed to download metadata for repo 'AppStream

跟著教程使用指令docker build -f /mydocker/Dockerfile -t mytomcat:1.1 .時(shí)出現(xiàn)了以下錯(cuò)誤:

Failed to download metadata for repo 'AppStream'Error: Failed to download metadata for repo 'AppStream'

在網(wǎng)上找了很多教程大多一知半解,而且大多都是2-3年前的了,并且沒有作用,經(jīng)過一晚上的嘗試終于解決了這個(gè)問題,在此記錄一下,希望小伙伴們能愉快解決這個(gè)問題
激動(dòng)人心的Successfully

但是由于途中經(jīng)過了太多的嘗試,不能完全確定究竟是哪個(gè)方法生了效便一并寫在這里,下次再實(shí)驗(yàn)的時(shí)候加以測(cè)試,再來(lái)完善,如果有大佬也多謝指正。

方法一:修改源

1.檢查網(wǎng)絡(luò)是否聯(lián)通
隨便ping一個(gè)網(wǎng)站即可,例如:ping www.baidu.com

2.關(guān)閉防火墻
systemctl stop firewalld.service(我第一次實(shí)驗(yàn)的時(shí)候就是使用這個(gè)方法,但是沒有進(jìn)行這一步,再第二種方法之后又進(jìn)行了這一步并重啟docker 最后居然成功了)

3.修改軟件源
/etc/repos.d文件夾下有CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo這三個(gè)文件,將三個(gè)文件中的mirrow注釋掉,設(shè)置baseurl 為阿里源

試錯(cuò)的時(shí)候阿里源都加了幾個(gè).........

4.命令行下載阿里源
指令為:wget -O /etc/yum.repos.d/CentOS-Base.repo [http://mirrors.aliyun.com/repo/Centos-8.repo](http://mirrors.aliyun.com/repo/Centos-8.repo)(Centos8根據(jù)系統(tǒng)版本修改就好了,我的是CentOS8)

5.運(yùn)行 yum makecache 生成緩存(或 yum clean all&&yum makecache

6.重啟Docker服務(wù)
service docker restart

方法二:下載ssh

yum install openssh openssh-server openssh-clients

沒錯(cuò)就只下了個(gè)ssh,當(dāng)時(shí)我也是非常懷疑,并且原帖使用此指令后出了錯(cuò),而我沒有出現(xiàn),于是我就順便把方法一的時(shí)候沒關(guān)的防火墻關(guān)掉了,然后重啟了一下Docker,然后就成功了。真是不可思議。
小伙伴們可以先按照方法一步不差的走一遍(不要學(xué)我跳過關(guān)防火墻),然后實(shí)驗(yàn)一下,如果不行的話再進(jìn)行方法二。
方法二雖然看似簡(jiǎn)單,但是如果出錯(cuò)了處理很麻煩,所以優(yōu)先使用方法一(而且個(gè)人感覺方法一的軟件源才是問題的關(guān)鍵)

之后我再次實(shí)驗(yàn)后來(lái)更新的更準(zhǔn)確一些。

參考了這兩個(gè)帖子:
方法一,但是沒寫三個(gè)文件的路徑
方法二,包括安裝ssh時(shí)出錯(cuò)的解決辦法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容