Docker 网络

Docker 网络

披露:我是 docker 新手。

我无法将 Docker 容器连接到网络。我启动了容器,并在其 bash 中使用ping6网络上的另一个地址,结果出现无法到达目的地的情况。我没有网络访问权限,所以看不到yum install wireshark发生了什么。

我有两个子网(fc8c:979b:1f4e:6ec7::/64[我的局域网] 和fd45:73cb:008d:16b7::/64[用于 docker-containers])。如果这些是物理服务器,我会将 docker-host 指定为 ipfc8c:979b:1f4e:6ec7:6ae9:a0dc:840f:1a81fd45:73cb:8d:16b7:694f:c5d1:818:4651指定为网关。然后,我会将静态、随机生成的 IP 分配给fd45:73cb:8d:16b7::/64docker-containers 并设置适当的路由。

那么问题是..如何让docker-host充当我的网关?如何让docker-host向docker-containers发送路由器广告(或等效广告)?

我看到一个以太网适配器,但如果我需要使用命令,docker0我就不想对其进行配置。ipdocker

答案1

感谢 Almdandi 链接涵盖 Docker 中的 IPv6 的文档

通过改变两件事我就能让 IPv6 正常工作,下面列出了所需的一切。

  1. Docker
  2. 两个 IPv6 /64 子网(设为[Subnet_0]docker-host 所eth0连接的子网,并设为[Subnet_1]容器专用的 /64)。
  3. Radvd(或其他路由器广告解决方案)

修改/etc/docker/daemon.json文件以包含

{
  "ipv6": true,
  "fixed-cidr-v6": "[Subnet_1]::/64"
}

您的空间中哪个[Subnet_1]/64 子网仅用于容器,并且不是 docker-host 所附加的子网。(我使用了来自我们的 /48 的全局可路由空间)。

eth0然后我使用 radvd[Subnet_1]作为路由,在 docker-host 的接口外添加了一个路由器广告。

Docker 似乎

  • eth0从和设置路由器docker0,并自行设置其适用的子网。
  • [Subnet_1]自行向容器发送前缀通告。

相关内容