How can you make the Docker container use the host machine's '/etc/hosts' file?

Use --network=host in the docker run command. This tells Docker to make the container use the host's network stack. You can learn more here.


Add a standard hosts file -

docker run -it ubuntu cat /etc/hosts

Add a mapping for server 'foo' -

docker run -it --add-host foo:10.0.0.3 ubuntu cat /etc/hosts

Add mappings for multiple servers

docker run -it --add-host foo:10.0.0.3 --add-host bar:10.7.3.21 ubuntu cat /etc/hosts

Reference - Docker Now Supports Adding Host Mappings


extra_hosts (in docker-compose.yml)

https://docs.docker.com/compose/compose-file/

Add hostname mappings. Use the same values as the docker client --add-host parameter.

extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"

Tags:

Docker