Docker构build在apt-get中失败

我在构build过程中遇到错误。 我见过很多类似的问题,但似乎没有解决这个问题。

我正在OS X El Capitan上运行Docker(版本17.06.0-ce-mac18)。

我的Dockerfile是:

 FROM ubuntu:14.04 RUN apt-get update && apt-get install -y -q git 

我从一个混帐依赖关系得到错误的请求400错误:

 Get:38 http://archive.ubuntu.com/ubuntu/ trusty-updates/main patch amd64 2.7.1-4ubuntu2.3 [86.4 kB] Fetched 7619 kB in 5s (1367 kB/s) E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libx11/libx11-data_1.6.2-1ubuntu2_all.deb 400 Bad Request [IP: 91.189.88.162 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? The command '/bin/sh -c apt-get update && apt-get install -y -q git' returned a non-zero code: 100 

解决方法的任何解释或想法?

我认为正在使用的镜像目前无法访问,您可以使用sed从Docker文件中尝试更改ubuntu的镜像。

您也可以使用ubuntu的镜像协议,它将获取您所在国家的镜像:

 FROM ubuntu:14.04 RUN sed -i -e 's/http:\/\/archive/mirror:\/\/mirrors/' -e 's/\/ubuntu\//\/mirrors.txt/' /etc/apt/sources.list RUN apt-get update && apt-get install -y -q git 

你甚至可以用相同的方式指定一个你想要使用的镜像。 有关apt镜像的更多信息,请参阅本文

我认为这个问题来自于你正在使用ubuntu:14.04这个已被弃用的事实( https://askubuntu.com/questions/731891/not-able-to-install-anything-and-update-on-ubuntu-14 -10 )

你可以尝试与FROM ubuntu ? 这将使用最新的Ubuntu的16.04。

编辑:Ubuntu 14.04是LTS,所以如@jwodder指出,它应该仍然是支持。 我仍然会尝试用FROM ubuntu来使用最新的LTS(16.04),因为它可能是一个简单的修复。