{"action":"created","issue":{"url":"https://api.github.com/repos/weaveworks/docker-plugin/issues/14","labels_url":"https://api.github.com/repos/weaveworks/docker-plugin/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/weaveworks/docker-plugin/issues/14/comments","events_url":"https://api.github.com/repos/weaveworks/docker-plugin/issues/14/events","html_url":"https://github.com/weaveworks/docker-plugin/issues/14","id":83436513,"number":14,"title":"Make containers use WeaveDNS as resolver","user":{"login":"squaremo","id":62033,"avatar_url":"https://avatars.githubusercontent.com/u/62033?v=3","gravatar_id":"","url":"https://api.github.com/users/squaremo","html_url":"https://github.com/squaremo","followers_url":"https://api.github.com/users/squaremo/followers","following_url":"https://api.github.com/users/squaremo/following{/other_user}","gists_url":"https://api.github.com/users/squaremo/gists{/gist_id}","starred_url":"https://api.github.com/users/squaremo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/squaremo/subscriptions","organizations_url":"https://api.github.com/users/squaremo/orgs","repos_url":"https://api.github.com/users/squaremo/repos","events_url":"https://api.github.com/users/squaremo/events{/privacy}","received_events_url":"https://api.github.com/users/squaremo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-06-01T10:55:33Z","updated_at":"2015-06-01T15:14:27Z","closed_at":null,"body":"Harder than it sounds. There are two requirements:\r\n\r\n 1. The plugin has to be able to put `nameserver x.x.x.x` in the container's `/etc/resolv.conf`\r\n 2. The container has to be able to reach `x.x.x.x`.\r\n\r\nAt the minute, there's no provision for a libnetwork driver to do anything with `/etc/resolv.conf` -- or rather, there is a field in the driverapi, but no machinery to do anything with it. https://github.com/docker/libnetwork/pull/212 may fix this in part, if it lands and gets things right. (Currently it attributes primacy to an endpoint, regardless of where it is used; rather, it should nominate a primary endpoint for each sandbox. But then, what happens when you remove that endpoint? Who knows)\r\n\r\nThe second problem is perhaps more tricky, since it requires the container to have another interface on which to talk to weaveDNS (or, for weaveDNS to operate differently. Somehow.)\r\n\r\nThere is one clear alternative here: using another bridge device, on which weaveDNS listens, and on which each container is given an interface. This would require the recapitulation of the libnetwork bridge driver (allocating IPs and so on)."},"comment":{"url":"https://api.github.com/repos/weaveworks/docker-plugin/issues/comments/107571790","html_url":"https://github.com/weaveworks/docker-plugin/issues/14#issuecomment-107571790","issue_url":"https://api.github.com/repos/weaveworks/docker-plugin/issues/14","id":107571790,"user":{"login":"tomwilkie","id":444037,"avatar_url":"https://avatars.githubusercontent.com/u/444037?v=3","gravatar_id":"","url":"https://api.github.com/users/tomwilkie","html_url":"https://github.com/tomwilkie","followers_url":"https://api.github.com/users/tomwilkie/followers","following_url":"https://api.github.com/users/tomwilkie/following{/other_user}","gists_url":"https://api.github.com/users/tomwilkie/gists{/gist_id}","starred_url":"https://api.github.com/users/tomwilkie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomwilkie/subscriptions","organizations_url":"https://api.github.com/users/tomwilkie/orgs","repos_url":"https://api.github.com/users/tomwilkie/repos","events_url":"https://api.github.com/users/tomwilkie/events{/privacy}","received_events_url":"https://api.github.com/users/tomwilkie/received_events","type":"User","site_admin":false},"created_at":"2015-06-01T15:14:27Z","updated_at":"2015-06-01T15:14:27Z","body":"Downside of having all containers on a host share a \"dns\" bridge is that it would potentially break isolation between containers on different networks but on the same host.\r\n\r\nAlternative could be to have multiple interfaces for dns, one per subnet..."}}