使用Dockerfile时Error: Failed to do
跟着教程使用指令docker build -f /mydocker/Dockerfile -t mytomcat:1.1 .
时出现了以下错误:
在网上找了很多教程大多一知半解,而且大多都是2-3年前的了,并且没有作用,经过一晚上的尝试终于解决了这个问题,在此记录一下,希望小伙伴们能愉快解决这个问题
激动人心的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 为阿里源
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时出错的解决办法