It is not recommended that you do any NAT in an IPv6 environment that defeats the IPv6 target.
You can access the container through IPv6 using piping. Pipelines allow more flexible network configuration:
sudo docker run -t -i --name myimage <image id from `sudo docker images`> /bin/bash sudo pipework br4 -i eth1 <container id from `sudo docker ps`> 2001:db8:44::1/ 24@2001 :db8:44::ff sudo ip aa 2001:db8:44::FF/64 dev br4
To access your container from the Internet, you will need to assign an IPv6 address from the subnet of your public IPv6.
By assigning an IPv6 address to the new interface in the container (eth1), the default IPv4 route will be deleted, and the new default IPv6 route will point to the new default IPv6 gateway through eth1.
Container interfaces before using pipelines:
root@a0b5f4937c42 :/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 494: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:49 brd ff:ff:ff:ff:ff:ff inet 172.17.0.73/16 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::42:acff:fe11:49/64 scope link valid_lft forever preferred_lft forever root@a0b5f4937c42 :/#
Container Interfaces After applying the pipeline: (eth1)
root@9c8372c70ddc :/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 498: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:4a brd ff:ff:ff:ff:ff:ff inet 172.17.0.74/16 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::42:acff:fe11:4a/64 scope link valid_lft forever preferred_lft forever 500: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 1e:0a:3f:b3:15:43 brd ff:ff:ff:ff:ff:ff inet6 2001:db8:44:0:1c0a:3fff:feb3:1543/64 scope global dynamic valid_lft 2591994sec preferred_lft 604794sec inet6 2001:db8:44::1/24 scope global valid_lft forever preferred_lft forever inet6 fe80::1c0a:3fff:feb3:1543/64 scope link valid_lft forever preferred_lft forever root@9c8372c70ddc :/# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.17.0.0 * 255.255.0.0 U 0 0 0 eth0 root@9c8372c70ddc :/
From container to docker node:
root@9c8372c70ddc :/
From docker node to container:
ping6 2001:db8:44::1 PING 2001:db8:44::1(2001:db8:44::1) 56 data bytes 64 bytes from 2001:db8:44::1: icmp_seq=1 ttl=64 time=0.092 ms 64 bytes from 2001:db8:44::1: icmp_seq=2 ttl=64 time=0.072 ms 64 bytes from 2001:db8:44::1: icmp_seq=3 ttl=64 time=0.074 ms 64 bytes from 2001:db8:44::1: icmp_seq=4 ttl=64 time=0.075 ms ^C --- 2001:db8:44::1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2997ms rtt min/avg/max/mdev = 0.072/0.078/0.092/0.010 ms ajn:~/docker/dockergit$