给docker里的每一个容器一个独立的ipv6地址

/ 0评 / 0

1.配置/etc/docker/daemon.json文件 (这里的ipv6不用动)
{<br>"ipv6": true,<br>"fixed-cidr-v6": "2001:5001::/64"<br>}

2.执行 systemctl reload docker 重载Docker Engine的配置文件

3.添加自定义网桥网络 (这里的ipv6不用动)
docker network create \<br>-d bridge --ipv6 \<br>--subnet "2a01:4f9:7d:3989::/80" \<br>--gateway="2a01:4f9:7d:3989::1" \<br>--subnet=172.28.0.0/16 \<br>--gateway=172.28.0.1 ipv6

4.启动docker容器时候指定ipv6网桥和ipv6地址 (这里的ipv6写实际分配的公网ipv6)
docker run -itd -P --ip=172.28.0.200 \<br>--ip6="2a01:4f9:7d:3989::200" \<br>--network=ipv6 \<br>--name=ipv6test \<br>debian /bin/bash

5.在容器的宿主机上设置 ndp代理(ens3需要替换成实际的网卡名)
sysctl net.ipv6.conf.ens3.proxy_ndp=1

6.这里每一个docker分配的ipv6地址都需要添加这样一条规则 (这里的ipv6写刚刚分配的公网ipv6)
ip -6 neigh add proxy 2a01:4f9:7d:3989::200 dev ens3