Docker构建在apt get中失败

Docker构建在apt get中失败,docker,Docker,我在构建过程中遇到一个错误。我见过许多类似的问题,但似乎没有什么能解决这个问题 我正在OSX El Capitan上运行Docker(版本17.06.0-ce-mac18) 我的Dockerfile是: FROM ubuntu:14.04 RUN apt-get update && apt-get install -y -q git 我从一个git依赖项收到错误的请求400错误: Get:38 http://archive.ubuntu.com/ubuntu/ trusty-u

我在构建过程中遇到一个错误。我见过许多类似的问题,但似乎没有什么能解决这个问题

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

我的
Dockerfile
是:

FROM ubuntu:14.04
RUN apt-get update && apt-get install -y -q git
我从一个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

有任何关于解决方法的解释或想法吗?

我认为问题是因为您使用的是不推荐使用的ubuntu:14.04()

你能试试ubuntu的
吗?这将使用最新的ubuntu映像,即16.04


编辑:Ubuntu14.04是一个LTS,所以@jwodder指出它仍然应该受到支持。我仍然会尝试使用ubuntu中最新的LTS(16.04)和
,因为这可能是一个简单的修复方法。

我认为问题是因为您使用的ubuntu:14.04不推荐()

你能试试ubuntu的
吗?这将使用最新的ubuntu映像,即16.04


编辑:Ubuntu14.04是一个LTS,所以@jwodder指出它仍然应该受到支持。我仍然会尝试使用ubuntu中最新的LTS(16.04)和
,因为这可能是一个简单的修复方法。

我认为目前无法访问正在使用的镜像, 您可以尝试使用
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镜像的更多信息,请参阅此

我认为目前无法访问正在使用的镜像, 您可以尝试使用
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镜像的更多信息,请参阅此

链接的问题约为14.10,而此问题约为14.04,直到2019年仍受支持。哦,是的,14.04也是LTS,所以是的,你是对的,我的错。我仍然很想知道这个问题是否会在最新的图像中持续存在。我也尝试了ubuntu:16.04的
,我得到了不同的400个错误
E:无法获取http://archive.ubuntu.com/ubuntu/pool/main/s/sqlite3/libsqlite3-0_3.11.0-1ubuntu1_amd64.deb  400错误请求[IP:91.189.88.161 80]E:获取失败http://archive.ubuntu.com/ubuntu/pool/main/libe/libedit/libedit2_3.1-20150325-1ubuntu2_amd64.deb  400错误请求[IP:91.189.88.161 80]
真奇怪,我已经厌倦了我的机器,一切都很好。你能试着在ubuntu容器中运行相同的命令吗?Do
docker run-it ubuntu bash
然后
apt get update&&apt get install-y-q git
链接的问题大约是14.10,而这个问题大约是14.04,直到2019年仍然支持。哦,是的,14.04也是一个LTS,所以你是对的,我的错。我仍然很想知道这个问题是否会在最新的图像中持续存在。我也尝试了ubuntu:16.04的
,我得到了不同的400个错误
E:无法获取http://archive.ubuntu.com/ubuntu/pool/main/s/sqlite3/libsqlite3-0_3.11.0-1ubuntu1_amd64.deb  400错误请求[IP:91.189.88.161 80]E:获取失败http://archive.ubuntu.com/ubuntu/pool/main/libe/libedit/libedit2_3.1-20150325-1ubuntu2_amd64.deb  400错误请求[IP:91.189.88.161 80]
真奇怪,我已经厌倦了我的机器,一切都很好。你能试着在ubuntu容器中运行相同的命令吗?Do
docker run-it ubuntu bash
然后
apt get update&&apt get install-y-qgit
谢谢。我尝试了一些镜像,直到一个澳大利亚镜像成功:
运行sed-I的/http:\/\/archive.ubuntu.com\/ubuntu\//http:\/\/ubuntu.mirror.serversaustralia.com.au\/ubuntu\/'/etc/apt/sources.list
谢谢。我试过几个镜像,直到澳大利亚的镜像成功了:
运行sed-I的/http:\/\/archive.ubuntu.com\/ubuntu\//http:\/\/ubuntu.mirror.serversaustralia.com.au\/ubuntu\/'/etc/apt/sources.list