Docker build няма мрежа, но docker run има

Ако искам да създам своя Dockerfile, той не може да се свърже с мрежата или поне с DNS:

Sending build context to Docker daemon 15.95 MB
Sending build context to Docker daemon 
Step 0 : FROM ruby
 ---> eeb85dfaa855
Step 1 : RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
 ---> Running in ec8cbd41bcff
W: Failed to fetch http://httpredir.debian.org/debian/dists/jessie/InRelease  

W: Failed to fetch http://httpredir.debian.org/debian/dists/jessie-updates/InRelease  

W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease  

W: Failed to fetch http://httpredir.debian.org/debian/dists/jessie/Release.gpg  Could not resolve 'httpredir.debian.org'

W: Failed to fetch http://httpredir.debian.org/debian/dists/jessie-updates/Release.gpg  Could not resolve 'httpredir.debian.org'

W: Failed to fetch http://security.debian.org/dists/jessie/updates/Release.gpg  Could not resolve 'security.debian.org'

W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package build-essential
INFO[0001] The command "/bin/sh -c apt-get update -qq && apt-get install -y build-essential libpq-dev" returned a non-zero code: 100

Но ако изпълня точно същата команда чрез docker run, тя работи:

docker run --name="test" ruby /bin/sh -c 'apt-get update -qq && apt-get install -y build-essential libpq-dev'

Някой има ли идея защо docker build не работи? Опитах всички съвети, свързани с DNS, в StackOverflow, като стартиране на докер с --dns 8.8.8.8 и т.н.

Благодаря предварително


person sweiler    schedule 01.08.2015    source източник
comment
Трябва да спомена, че точно същият Dockerfile работи преди няколко седмици.   -  person sweiler    schedule 01.08.2015
comment
Имам същия проблем. разрешавал ли си някога това?   -  person wintersylf    schedule 23.03.2016
comment
Не.. Не на тази машина :(   -  person sweiler    schedule 29.03.2016


Отговори (7)


Docker определено изглежда има проблеми с мрежата. Успях да поправя този проблем с

systemctl restart docker

... което всъщност е просто командата 'restart-the-daemon' на ниво unix в Debian 8.

person John Clements    schedule 23.06.2016
comment
Това решава проблема ми, имам докер 1.12.0, мисля, че това е проблемна операционна система или какво може да бъде? - person kurkop; 19.08.2016

Имах подобен проблем. Но тъй като работех с AWS linux, нямах systemctl. Реших с помощта на:

sudo service docker restart
person fegoulart    schedule 26.09.2016

Моята компилация на докер също се провали, докато се опитвах да стартирам apt-get upgrade с абсолютно същите грешки. Използвах docker-machine на Mac OSX и обикновен docker-machine restart default реши този проблем. Няма идея обаче какво първоначално е причинило това.

person Jay V    schedule 27.04.2016

Друг случай на описаното по-горе поведение - този път изграждане на докер изображение от Jenkins:

[...] Стъпка 3: ИЗПЪЛНЕТЕ apt-get update && apt-get install -y curl libapache2-mod-proxy-html ---> Изпълнение в ea7aca5dea9b

Грешка http://security.debian.org jessie/updates InRelease

Грешка http://security.debian.org jessie/updates Release.gpg

Грешка „security.debian.org“ не може да бъде разрешена http://httpredir.debian.org jessie InRelease [.. .]

В моя случай се оказа, че DNS не е достъпен от контейнера - но все пак от докер хоста!? (Конфигурацията на резолвера за контейнери беше наред(!)) След рестартиране на докер машината (пълно рестартиране - 'рестартиране на docker.service' не свърши работа) тя отново работи. Така че една от моите дейности (или на мой колега) трябва да е прекъснала докер мрежата тогава!?? Може би някаква дейност по модификация на защитната стена???

Все още проучвам, тъй като не съм сигурен коя дейност може да е повредила докер мрежата тогава ...

person Juergen Klasen    schedule 28.06.2016

Имам абсолютно същия проблем с Raspberry.

Стартирането/спирането на услугата не помогна, но повторното инсталиране на пакета (dpkg -i docker-hypriot_1.10.3-1_armhf.deb && service docker start в моя случай) веднага реши ситуацията: apt-get update успява да разреши и да достигне до сървърите.

Трябва да има някои еднократни действия в процеса на инсталиране...

person olivm    schedule 28.05.2016

Също така се сблъсках със същия проблем днес. Моето решение беше да рестартирам вашата докер машина. В моя случай е на VirtualBox.

След като го изключите и след това рестартирате машината, http://security.debian.org изглеждаше решен.

Надявам се това да помогне.

person Tien Lin    schedule 26.04.2017

Няколко предложения, не съм сигурен дали ще работят или не. Можете ли да промените ...apt-get install -y... на ...apt-get install -yqq...

Също така, промени ли се този образ, от който се опитвате да изградите?

person Hatem Jaber    schedule 01.08.2015
comment
-yqq не е решил проблема. Също така се проваля при актуализацията на apt-get и дори не достига до инсталацията на apt-get. Изображението може да се е променило, но тъй като docker run с абсолютно същото основно изображение работи, не мисля, че проблемът е свързан с изображението. - person sweiler; 01.08.2015