Docker 开启 IPv6 实战指南

在 Docker 环境中启用 IPv6 支持可以扩展你的网络能力,尤其是在需要同时处理 IPv4 和 IPv6 流量的场景中。本文将详细介绍如何在 Docker 中配置默认的 bridge 网络以及自定义网络来支持 IPv6,并展示通过 IPv6NAT 方式来支持 IPv6 的实战步骤。

Docker 网络背景知识

Docker 网络是一个重要的抽象层,允许容器与宿主机及外部网络通信。Docker 安装完成后,会自动创建三个网络:bridgehostnone。通过以下命令可以查看:

docker network ls

其中,bridge 是 Docker 的默认网络,容器在没有指定网络时会自动连接到这个网络。默认网络在宿主机上创建了一个名为 docker0 的 bridge 设备,并配置了一个私有网段的网关 IP 地址。

ip addr show docker0
默认网络支持 IPv6

前置条件:确保你的设备被分配了一个 IPv6 地址。通过以下命令查看:

ip addr show

输出的物理网卡信息中,包含 inet6scope global 的行表示该网卡支持 IPv6。注意,IPv6 地址的前缀不能是 /128,否则建议通过 IPv6NAT 方式支持 IPv6。

配置步骤

  1. 修改 /etc/docker/daemon.json,添加 fixed-cidr-v6 配置,值为你的 IPv6 网段的子网(前缀长度最大为 /80)。

    {
         
         
        "fixed-cidr-v6": "2xxx:xxxx::/80"
    }
    
  2. 重新加载 Docker 配置:

    sudo systemctl reload docker
    
  3. 通过以下命令检查是否生效:

    docker network inspect bridge
    

    若生效,EnableIPv6 值为 trueIPAM.Config[1].Subnet 是你配置的 fixed-cidr-v6

注意事项

  • 如果 /etc/docker/daemon.json 中存在 "live-restore": true 字段,可能导致配置不生效。
  • 重新加载配置时,如果存在运行的容器,也可能导致配置不生效。

额外配置

  • /etc/sysctl.conf 中添加以下行,并执行 sysctl -p,配置宿主机和 docker0 网卡支持 NDP proxy:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值