weaveDNS, Now with Less Amnesia

By bltc34b82b83b949c23
November 28, 2014

When we first released it, weaveDNS was a bit forgetful — if you stopped and started it, it would lose its database of names. It would also (probably) be given a fresh IP address by the docker daemon, so containers which had been told its...

Related posts

Docker Networking with No External Cluster Store: Announcing Weave 1.4 Plugin

Weave Scope gets your Docker containers under control

Weave Networking Performance with the New Fast Data Path

When we first released it, weaveDNS was a bit forgetful — if you stopped and started it, it would lose its database of names. It would also (probably) be given a fresh IP address by the docker daemon, so containers which had been told its old address would no longer be able to reach it.

Happily, we’ve since fixed those two problems. Firstly, weaveDNS is given a complete list of names when it’s launched, so it doesn’t matter if you restart it. Secondly, it now binds to the IP address of the Docker bridge device, which won’t change when the container is restarted.

The combined effect of these improvements is that it doesn’t matter if weaveDNS is running when you start a container: you can start it later, and still be able to resolve names.

However, previously a container would be told to use weaveDNS if and only if weaveDNS was running at the time, which doesn’t make sense any more. So we have made this opt-in explicit, with the argument --with-dns to weave run meaning “use weaveDNS as the name server for this container”. As before, giving a container a hostname ending in .weave.local makes it resolvable at that name.

Lastly, the fate of weaveDNS is no longer tied to that of weave. It now has its own command to stop it: weave stop-dns.

To summarise:

sudo weave launch
sudo weave run 10.1.1.5/24 -tid -h pong.weave.local ubuntu
sudo weave launch-dns 10.0.0.2/16
docker attach $(sudo weave run --with-dns 10.1.1.6/24 -tid ubuntu)
# ping pong.weave.local
...
^C^D
sudo weave stop-dns

Related posts

Docker Networking with No External Cluster Store: Announcing Weave 1.4 Plugin

Weave Scope gets your Docker containers under control

Weave Networking Performance with the New Fast Data Path