When evaluating different tools for enabling docker containers to easily communicate with each other as well as external services, the tool the gave the least resistance path offering a complete set of tools was DNSDock, a DNS server for automatic container service discovery.

In a nutshell, DNSDock relies on the nimble DNS server implementation of miekg in golang. It then hocks to the docker socket and listens for events and dynamically manages DNS entries for all the containers running on a given host.

From the get go we faced a few issues with some tools not being able to resolve names when DNSDock was set as the primary DNS server. The details of the issues is documented here

To solve the issues there were a couple of pull requests submitted by the community members:

However, after waiting more than a month without a response we decided to fork the project and keep track of PRs and updates ourselves.

The project fork can be found at bitbucket.org/clouddynamics/dnsdock
The PRs #45 and #47 have been applied and some project dependencies have been updated which also fixed some other issues when resolving names in certain environments.

A patch for the issue Manage Multiples Nameservers #29 should be coming out very soon as well.

A docker image is also being kept up to date at our docker hub repo