Thi*_*CMC 6 ipv6 networking 14.04 docker
我正在尝试这个:
在使用 Ubuntu 14.04(IPv6 和 IPv4 的容器网关)的物理主机上,我尝试了:
root@docker-srv-1:~# ip -6 a a 2804:XXX:4:acbd::1/64 dev docker0
Run Code Online (Sandbox Code Playgroud)
当然,主机 docker-srv-1 可以“ping6 google.com”,并且子网 2804:XXX:4:abcd::/64 被路由到它。我现在可以从世界的任何地方“ping6 2804:XXX:4:acbd::1”(容器的 IPv6 网关(docker0 接口))。
后来,我打算直接在 docker0 接口上运行 radvd,因此,容器将自动生成自己的 SLAAC IPv6 地址(我相信它会,如果首先静态工作)。
root@docker-srv-1:~# docker.io run -t -i tmartinx/ubuntu-14.04-server-cloudimg /bin/bash
Run Code Online (Sandbox Code Playgroud)
但是,在容器内:
root@112c9071041a:/# ip -6 a a 2804:XXX:4:acbd::20/64 dev eth0
RTNETLINK answers: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我也试过:
root@docker-srv-1:~# docker.io run --lxc-conf="lxc.network.ipv6=2804:XXX:4:acbd::20/64" --lxc-conf="lxc.network.ipv6.gateway=2804:XXX:4:acbd::1" -d -e lxc -t -i tmartinx/ubuntu-14.04-server-cloudimg /bin/bash
235d2bea7d9b4cc54d08c6eb9e623e5655ac4e1668a9a7e255e796d254ce4845
2014/04/22 00:50:08 Error: Cannot start container 235d2bea7d9b4cc54d08c6eb9e623e5655ac4e1668a9a7e255e796d254ce4845: lxc.network.ipv6 = 2804:XXX:4:acbd::20/64 is not supported by the native driver
Run Code Online (Sandbox Code Playgroud)
我在这里找到了一些提示:http: //zargony.com/2013/10/13/ipv6-in-docker-containers - 但它没有用...... :'(
我也尝试过使用“-d -e lxc”的 docker.io 但是,也没有使用 IPv6 ......
我错过了什么吗?!
编辑 #1:
现在我正在使用 --privileged 运行 docker.io,如下所示:
docker.io run --privileged -t -i tmartinx/ubuntu-14.04-server-cloudimg /bin/bash
Run Code Online (Sandbox Code Playgroud)
所以,我可以运行“ip -6 aa $IPV6_ADDR”但是,仍然无法 ping6 它的网关(本地可访问的 docker0 int - IPv4 工作),当然根本没有 IPv6 连接......
来源:
IPV6 地址 https://github.com/dotcloud/docker/issues/4483
编辑 #2:
在研究了更多之后,我做了:
sudo apt-get install lxc
Run Code Online (Sandbox Code Playgroud)
添加到 /etc/default/docker.io 以下行:
DOCKER_OPTS="-d -e lxc"
Run Code Online (Sandbox Code Playgroud)
Docker 重新启动,但仍然没有 IPv6...无论如何,错误消息现在不同了,看:
root@docker-srv-1:~# docker.io run --lxc-conf="lxc.network.ipv6=2804:XXX:4:acbd::20/64" --lxc-conf="lxc.network.ipv6.gateway=2804:XXX:4:acbd::1" -t -i tmartinx/ubuntu-14.04-server-cloudimg /bin/bash
lxc-start: Cannot add ipv6 gateway for eth0 when not bringing up the interface
lxc-start: failed to setup netdev
lxc-start: failed to setup the network for '5c7d1765a7a93bff96711865ebd9325b9b9bf071e89c466fe1ae75a336af10f8'
lxc-start: failed to setup the container
lxc-start: invalid sequence number 1. expected 2
lxc-start: failed to spawn '5c7d1765a7a93bff96711865ebd9325b9b9bf071e89c466fe1ae75a336af10f8'
2014/04/22 04:58:25 Error: Cannot start container 5c7d1765a7a93bff96711865ebd9325b9b9bf071e89c466fe1ae75a336af10f8: exit status 1
Run Code Online (Sandbox Code Playgroud)
编辑 #3
带有 IPv6 的 Docker 正在运行!!!我做了什么?
安装lxc(编辑 #2)并重新配置 DOCKER_OPTS 以启用它后,使用 IPv6 的 Docker 正在使用以下命令:
docker.io run --privileged --lxc-conf="lxc.network.ipv6 = 2804:XXX:4:acbd::200/64" --lxc-conf="lxc.network.ipv6.gateway = 2804:XXX:4:acbd::1" --lxc-conf="lxc.network.flags = up" -t -i tmartinx/ubuntu-14.04-server-cloudimg /bin/bash
Run Code Online (Sandbox Code Playgroud)
如果其他人有更好的解决方案,请发布!
谢谢!
蒂亚戈