title: How to enable IPv6 in docker
---
pub_date: 2019-12-13
---
author: ungleich virtualisation team
---
twitter_handle: ungleich
---
_hidden: no
---
_discoverable: yes
---
abstract:
It's time for IPv6 in docker, too.
---
body:

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](https://IPv6VPN.ch)), 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](https://IPv6VPN.ch) 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](https://ungleich.ch/u/blog/securing-network-access-to-ipv6-docker-containers/).

In the mean time, you can also join the IPv6 discussion on
[IPv6.Chat](https://IPv6.chat) or if you want to spawn your docker
containers on a VM, you can do so on
[IPv6OnlyHosting.com](https://IPv6OnlyHosting.com).
