官方说明

https://docs.docker.com/config/daemon/ipv6/
/etc/docker/daemon.json

#官方
{
  "experimental": true,
  "ip6tables": true
}
或者
{
    "ipv6": true,
    "experimental": true,
    "ip6tables": true, 
    "fixed-cidr-v6": "2001:db8:1::/64"
}

ipv6设置为true,启用对ipv6的支持
experimental,启用实验特性,ip6tables是docker的一个实验功能,所以需要设为true。
ip6tables,启用ip6tables,docker会在ip6tables中配置docker网络相关的规则链。
fixed-cidr-v6,设置默认网络IPv6网段(必填)。

如果不启动ip6tables功能,则不会自动创建ip6tables策略,无法实现跨节点通信;

  • systemctl restart docker

创建ipv6网络

docker network create --ipv6 --subnet 2001:0DB8::/112 ip6net
docker network create --ipv6 --subnet 2001:0DB8::/112 lnet6

docker network create -d bridge --ipv6 --subnet "fd00:db8:2:ddee::/64" --gateway="fd00:db8:2:ddee::1" --subnet=172.104.1.0/24 --gateway=172.104.1.1 ipv6bridge
##不配置ipv4 network,则会自动创建:"Subnet": "172.103.2.0/24","Gateway": "172.103.2.1"
docker network create --ipv6 --subnet "fd00:db8:2:ddff::/64" --gateway="fd00:db8:2:ddff::1" ipv6only
## 创建的ipv6 network不指定gateway,但是创建容器时,使用该network,容器的ipv6默认网关为:fd00:db8:2:de00::1
docker network create --ipv6 --subnet "fd00:db8:2:de00::/64" ipv6only-nogateway




#查看ipv6网络
docker network inspect bridge

docker-compose 开启ipv6

networks:
  my-network:
    enable_ipv6: true
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: fd01:3200:3200::/64
          gateway: fd01:3200:3200::1
#或者使用外部网络
networks:
  harbor:
    external: true
    name: ipv6bridge

测试

curl http://[::1]:80
curl http://[2001:da8:100d:ad::942:216]:80