使用Dockerfile时Error: Failed to download metadata for repo 'AppStream

跟着教程使用指令docker build -f /mydocker/Dockerfile -t mytomcat:1.1 .时出现了以下错误:

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

在网上找了很多教程大多一知半解,而且大多都是2-3年前的了,并且没有作用,经过一晚上的尝试终于解决了这个问题,在此记录一下,希望小伙伴们能愉快解决这个问题
使用Dockerfile时Error: Failed to download metadata for repo 'AppStream_第1张图片
激动人心的Successfully

但是由于途中经过了太多的尝试,不能完全确定究竟是哪个方法生了效便一并写在这里,下次再实验的时候加以测试,再来完善,如果有大佬也多谢指正。

方法一:修改源

1.检查网络是否联通
随便ping一个网站即可,例如:ping www.baidu.com

2.关闭防火墙
systemctl stop firewalld.service(我第一次实验的时候就是使用这个方法,但是没有进行这一步,再第二种方法之后又进行了这一步并重启docker 最后居然成功了)

3.修改软件源
/etc/repos.d文件夹下有CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo这三个文件,将三个文件中的mirrow注释掉,设置baseurl 为阿里源

使用Dockerfile时Error: Failed to download metadata for repo 'AppStream_第2张图片
试错的时候阿里源都加了几个.........

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根据系统版本修改就好了,我的是CentOS8)

5.运行 yum makecache 生成缓存(或 yum clean all&&yum makecache

6.重启Docker服务
service docker restart

方法二:下载ssh

yum install openssh openssh-server openssh-clients

没错就只下了个ssh,当时我也是非常怀疑,并且原帖使用此指令后出了错,而我没有出现,于是我就顺便把方法一的时候没关的防火墙关掉了,然后重启了一下Docker,然后就成功了。真是不可思议。
小伙伴们可以先按照方法一步不差的走一遍(不要学我跳过关防火墙),然后实验一下,如果不行的话再进行方法二。
方法二虽然看似简单,但是如果出错了处理很麻烦,所以优先使用方法一(而且个人感觉方法一的软件源才是问题的关键)

之后我再次实验后来更新的更准确一些。

参考了这两个帖子:
方法一,但是没写三个文件的路径
方法二,包括安装ssh时出错的解决办法

你可能感兴趣的:(使用Dockerfile时Error: Failed to download metadata for repo 'AppStream)