DockerwithIPV6-创新互联

1、绪论

Docker 默认是不开启 IPv6 支持的,在 Docker 容器或群服务中使用 IPv6 之前,您需要在 Docker 守护进程中启用 IPv6 支持。之后,您可以选择对任何容器、服务或网络使用 IPv4 或 IPv6(或两者)

10余年的龙岗网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整龙岗建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“龙岗网站设计”,“龙岗网站推广”以来,每个客户项目都认真落实执行。2、IPv6 地址段划分
  • Docker 可以配置多个虚拟网络,对于 IPv4 来说通过形如 172.17.0.1/16、172.18.0.1/16、172.19.0.1/16 这样内网私有IP地址段配置多个 IPv4 虚拟网段;
  • 那么同样的道理 IPv6 也可以划分为多个段,可以通过 ipv6-subnet-calculator自动划分;
https://subnettingpractice.com/ipv6-subnet-calculator.html

在这里插入图片描述

To get at least 4 new subnets divide 2607:f0d0:1002:51::4/64 into 4 new subnets. 
Each of these subnets is a /66 containing 0.25 /64s. The new subnets are as follows:
2607:f0d0:1002:51::/66
2607:f0d0:1002:51:4000::/66
2607:f0d0:1002:51:8000::/66
2607:f0d0:1002:51:c000::/66
3、配置默认 Docker IPv6

注意:IPv6 网络仅在 Linux 主机上运行的 Docker 守护程序上受支持。

3.1、编辑/etc/docker/daemon.json

编辑/etc/docker/daemon.json,将ipv6密钥设置为true和fixed-cidr-v6您的 IPv6 子网的密钥。在此示例中,我们将其设置为2607:f0d0:1002:51::/66

{  "experimental": true,  
  "ipv6": true,  
  "ip6tables": true,  
  "fixed-cidr-v6": "2607:f0d0:1002:51::/66"  
} 

这里ip6tables是指由 Docker 自动配置 IPv6 的防火墙规则,如果你希望自己手动配置,请改为 false 或者移除此项,否则容器将无法连接 IPv6 网络;

fixed-cidr-v6 则是我们划分的子网段的第一个,fixed-cidr-v6将分配给默认的 docker 桥接网络,docker 0.

在这里插入图片描述

3.2、重新加载 Docker 配置文件。
$ systemctl reload docker

在这里插入图片描述

3.3、查看docker网络

执行命令docker network ls,除非您之前创建了自己的自定义网络,否则您将看到以下内容:

[root@localhost deploy]# docker network ls
NETWORK ID     NAME         DRIVER    SCOPE
76c3482e860e   bridge       bridge    local
ffc8043b2395   host         host      local
3ab57d30d24a   monitoring   bridge    local
44d8fefb76f4   none         null      local
3.4、检查默认的 docker ‘bridge’ 网络

检查默认的 docker ‘bridge’ 网络docker network inspect bridge。您应该会看到列出了您选择的 IPv6 网络以及网关地址。

[root@localhost deploy]# docker network inspect bridge
[
    {"Name": "bridge",
        "Id": "76c3482e860e7787f85da0892d9f2c6f967ceeb252a6dc7f789c923d02fc2f9e",
        "Created": "2022-12-01T14:23:31.16878297+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": true,
        "IPAM": {"Driver": "default",
            "Options": null,
            "Config": [
                {"Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                },
                {"Subnet": "2607:f0d0:1002:51::/66",
                    "Gateway": "2607:f0d0:1002:51::1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {"Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {"com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]
  • docker0 网络是默认的桥接网络。默认情况下,分配给它的容器现在将具有与本地网关和彼此之间的 IPv4 和 IPv6 连接。
  • 但是,由于 docker0 网络的限制,docker 的建议是该网络不应在生产环境中使用,而应使用用户定义的桥接网络。在下一节中,我将构建一个这样的自定义网络。
4、配置 Docker Compose 的 IPv6 支持
networks:  
  example:  
    enable_ipv6: true  
    driver: bridge  
    driver_opts:  
      com.docker.network.enable_ipv6: "true"  
    ipam:  
      config:  
       - subnet: 172.23.0.0/16  
       - subnet: "2607:f0d0:1002:51:4000::/66"  
         gateway:2607:f0d0:1002:51:4000::1
  • 这里example网络通过配置开启IPv6支持,其中网络段配置IPv4是172.23.0.0/16,IPv6选用余下的第二个网段2607:f0d0:1002:51:4000::/66注意这里不能和daemon.json配置的 IPv6 网段一样。
  • 这里的 IP 配置同样是一个示例,具体可以根据实际情况进行修改。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文名称:DockerwithIPV6-创新互联
路径分享:http://ybzwz.com/article/dsgiii.html