9

I am making a docker image using a pretty simple Dockerfile. Inside the Dockerfile I have this command:

RUN printf "192.92.13.243 www.hahaha.com \n" >> /etc/hosts

The command itself seems to be OK, since creation of the image does not halt at this point.

The issue is this: When running the image, the line that is supposed to have been inserted inside "/etc/hosts" is not there.

Now, I searched around and found out that before version 1.2 of docker, there was an issue with the hosts file inside the containers. In my case, I am using version 1.5, the latest as of this moment.

Am I missing something?

UPDATE 1:

There seem to be a lot of issues for this, both open and closed, in docker's github pages.

12

This works on docker 1.7.0

RUN echo "192.168.11.112 myhost" >> /etc/hosts && wget http://myhost

The trick is to add the hostname on the same line as you use it, otherwise the hosts file will get reset, since every RUN command starts a new intermediate container. For example, this will not work:

RUN echo "192.168.11.112 myhost" >> /etc/hosts
RUN wget http://myhost
  • 1
    Thanks for the insight! Although correct (I checked) and useful in general, it is of no real use to me in this case. I need the "hosts" file to be populated when the container runs. – dsljanus Jul 28 '15 at 10:23
  • 2
    +1 for running commands on the same line – myol Apr 5 '16 at 16:35
7

After writing the update to my question I decided to take one more hard look at the "issues" opened in github. Turns out, a workaround has been implemented:

docker run ... --add-host='server:0.0.0.0' ...

Using the "--add-host..." argument when starting a container it is possible to modify the hosts file.

  • 5
    I want to be able to do this in build though. The person running the container shouldnt have to know about internal hosts. Makes zero sense! – samsamm777 Dec 3 '15 at 13:27
  • I echo @samsamm777. Wonder if there is a good way of doing that? – Jonathan Apr 6 '17 at 10:20
  • This really is very surprising behaviour, which never is a good idea in IT systems. – Torsten Bronger Jul 7 '17 at 20:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.