How to enable IPv6 in docker

Posted on 2019-12-13 by ungleich virtualisation team

If you are like us and like to do fun things with IPv6 and if you also like to run docker containers, then this article is for you.

Enabling IPv6 in docker

Recent docker versions just need to have the ipv6 flag and an IPv6 network specfied in the daemon.json. This might look as follows:

{
  "ipv6": true,
  "fixed-cidr-v6": "your-ipv6-network-here"
}

This configuration needs to be placed in /etc/docker/daemon.json.

Selecting the right IPv6 network

In the IPv6 world we usually say, "just take a /64 for everything". And while we will never create 18446744073709551616 containers on one host, we will just follow this dogma and use a /64 for docker.

Why would we do this? One of the big advantages of IPv6 is that things get simpler. Instead of using a tiny network like a /120 that is suitable for 256 containers, we always choose a /64. This way we don't have to use our brain power on choosing the network size or to eventually later resize the network.

If you have a /48 assigned to your host (like when you use the IPv6VPN), you can basically use any of the 65'536 networks that are available. We like to remember names so we usually take the b00 network for containers (b00 as in the sound a ghost makes when flying around).

So if your main /48 network was for instance 2a0a:e5c1:137::/48, we would use 2a0a:e5c1:137:b00::/64 and the daemon.json configuration file would look as follows:

{
  "ipv6": true,
  "fixed-cidr-v6": "2a0a:e5c1:137:b00::/64"
}

After adding this configuration, you will also need to restart the docker daemon. After that, your containers should be using IPv6.

What if you don't have an IPv6 network?

Luckily, anyone can get an IPv6 network anywhere in the world nowadays. You can checkout IPv6VPN for our Switzerland based offer.

IPv6++

If you want to learn more about IPv6 or how to secure your docker containers, stay tuned for the next blog posts, which will explain on how to secure access to your docker containers.

In the mean time, you can also join the IPv6 discussion on IPv6.Chat or if you want to spawn your docker containers on a VM, you can do so on IPv6OnlyHosting.com.