Skip to content

Docker-IPv6配置

主机IPv6配置

参考开启: 腾讯云开启IPv6

确认是否开启成功

bash
ip -f inet6 addr show eth0

正常的情况示例:

scope global 这个表示是您真正的可以被访问的IPv6地址

bash
root@tsh2:~# ip -f inet6 addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2402:4e00:140b:8600:0:9bd0:cb95:12dd/128 scope global dynamic 
       valid_lft 378393773sec preferred_lft 126105773sec
    inet6 fe80::5054:ff:fe99:44b9/64 scope link 
       valid_lft forever preferred_lft forever
root@tsh2:~#

测试IPv6主机是否正常

bash
ping6 您的ipv6地址

也可以通过在线工具测试 https://ipw.cn/ipv6ping/

image-20240420123626828

Docker开启IPv6支持

前提,主机已经开通了IPv6支持

修改配置

bash
vim /etc/docker/daemon.json
json
{
  "experimental": true,
  "ipv6": true,
  "ip6tables": true,
  "fixed-cidr-v6": "2001:db8:0:0:4000::/66"
}

重启docker

bash
service docker restart

通过 IPv6子网计算器,获取子网网段。

注意:Docker必须至少使用 64位

image-20240420125049694

docker-compose配置

IPV6暂时不支持 overlay 类型的网络模式

注意:这里的子网网段 2001:db8:0:0:8000::/66 不要和 daemon.json 重复了。

yaml
networks:
  default:
    # ipv6 不支持overlay
#    driver: overlay
    name: 'open-net'
    enable_ipv6: true
    attachable: true
    ipam:
      driver: default
      config:
        - subnet: 2001:db8:0:0:8000::/66

OK了,快来体验一波支持IPv6的docker容器吧

部分截图示例:

image-20240420125325402

参考文档

人生感悟