如何解决在Docker中,apt-get安装失败,并显示“无法获取http://archive.ubuntu.com/…404未找到”错误为什么?我们如何才能克服它?
您已声明Dockerfile包含RUN apt-get -yupdate
其自身的RUN
指令。但是,由于构建缓存,如果对Dockerfile的所有更改在文件的后面发生,则在docker build
运行时,Docker将重用上次RUN apt-get
-y update
执行的创建的中间映像,而不是再次运行命令,因此所有最近添加或编辑的命令apt-get
install
行将使用旧数据,从而导致您观察到的错误。
有两种方法可以解决此问题:
-
将
--no-cache
选项传递给docker build
,强制在每次构建映像时运行Dockerfile中的每个语句。 -
重写Dockerfile以将
apt-get
命令合并为一条RUN
指令:RUN apt-get update && apt-get install foo bar ...
。这样,无论何时编辑要安装的软件包列表,docker build
都将被迫重新执行整个RUN
指令,从而apt-get update
在安装之前重新运行。
该Dockerfile最佳实践页面实际上有上一整节apt-
get
的Dockerfiles命令。我建议你阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。