How to resolve docker host names (/etc/hosts) in containers

how is it possible to resolve names defined in Docker host’s /etc/hosts in containers?
Containers running in my Docker host can resolve public names (e.g. so Docker dns is working fine.
I would like to resolve names from Docker hosts’s (e.g. smtp) from containers.

My final goal is to connect to services running in Docker host (e.g. smtp server) from containers. I know I can use the Docker Host IP ( from containers, but I thought that Docker would have used the Docker host /etc/hosts to build containers’s resolve files as well.

  • Docker Permission Denied run docker as nginx
  • How to install tshark on Docker?
  • How to check if the docker image has all the files?
  • Openstack Nova docker implement security group
  • Use Concourse's docker resource to fetch containers to be used in a docker compose
  • Docker - Fail to run container from imported image with entrypoint
  • I am even quite sure I have seen this working a while ago… but I could be wrong.

    Any thoughts?


  • Can't get remote Hazelcast client to connect to cluster running in docker containers
  • mounting data volumes to another container
  • Bash Script to execute Docker container operations and extract container IP Address
  • docker-compose up fails with “ Unable to find a node that satisfies the following conditions ”
  • How to correctly specify named volumes when trying to backup files in docker
  • npm install fails in Jenkins pipeline
  • 2 Solutions collect form web for “How to resolve docker host names (/etc/hosts) in containers”

    Check out the --add-host flag for the docker command:

    $ docker run --add-host="smtp:" container command

    In Docker, /etc/hosts cannot be overwritten or modified at runtime (security feature). You need to use Docker’s API, in this case --add-host to modify the file.

    For docker-compose, use the extra_hosts option.

    For the whole “connect to services running in host” problem, see the discussion in this GitHub issue:

    The common approach for this problem is to use --add-host with Docker’s gateway address for the host, e.g. --add-host="dockerhost:". Check the issue above for some scripts that find the correct IP and start your containers.

    You can setup on host simple DNS server, and in container setup /etc/resolve.conf to Docker host DNS server.

    For example in dnsmasq you can add addn-hosts=/etc/hosts to config file. So container, by using Docker host DNS server, will be able to resolve hosts /etc/hosts.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.