Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Proposal: Better IPv6 support #1176
Right now, the IPv6 story with Docker Machine is pretty sketchy:
But there's a problem with this last bit - providers will assign a /64 usually when the host is provisioned. So even if a user wanted to specify
So, here's the proposal:
This is mostly just late-night brainstorming, and I realize there are gaps... But I think this is doable!
(please also CC any others who have more clue than me about IPv6 in Docker)
@sthulb - Well I was thinking of starting a PR soon for the second part. It'll probably end up being two (or more) PRs though, since all the drivers should be audited to make sure there's a ---ipv6 flag.
What I was thinking was to add a
I'm not sure if it's a good idea to just give Docker the host's /64. I can't think of any reason why not, but I'm not totally familiar with how Docker deals with it.
What is the priority on this? Is there some design or technical reason why this shouldn't be pursued?
My interest in this is: I can't use the virtualbox driver to create a docker host machine that properly provisions IPv6 interfaces. Which means I can't use docker-machine to help me investigate Docker's IPv6 support and behavior.
@JeNeSuisPasDave It's been a while since I logged this, and a while since I've hacked on docker-machine, but from what I recall it is possible to provision IPv6 with docker-machine and virtualbox.
The key is you need to set
I haven't had a chance to play with docker-machine's virtualbox support in a while (I use Docker for Mac for local setups), so I'm not sure if you'll run into problems. But, if you do, it'd be useful to update this issue with your findings
I haven't been able to get it working, but maybe I don't understand the requirement "have your host already configured with a routable v6 address". I'm just trying to get the container network to be routable and the containers to use IPv6 among themselves, plus one container providing an exported IPv6 address (i.e. a web server container).
First, the version info:
Next, I did this command to create a Docker VM:
#! /bin/bash # # Create a new VirtualBox virtual machine that hosts docker # Machine name will be 'dev-dkrv6' # docker-machine create --driver virtualbox \ --virtualbox-cpu-count 2 \ --virtualbox-memory "4096" \ --virtualbox-disk-size "20000" \ --engine-opt ipv6=true \ --engine-opt fixed-cidr-v6="fc00::d0c:0:0:0:1/64" \ dev-dkrv6
The output was:
That produced this virtualbox host-only network on my Mac (my host):
And a virtual machine with this
Now if I start a container (
If I then ping those addresses from the Docker host VM, I see:
I expected to also see fe80::42:acff:fe11:2 and fc00::d0c:0:242:ac11:2 in there.
Pinging the Docker host VM from my Mac looks like:
So there are several problems: