unRAID OS Docker 容器连接

unRAID OS Docker 容器连接

我目前正在设置 UnraidOS 服务器,并且我的机器上有一堆 docker 镜像。我最近安装了一个 docker 容器,它根据 IP ping 其他容器并报告正常运行状态。正常运行的 docker 连接到网桥网络,并且只能访问网桥上的其他 docker 容器,而不能访问网络上的任何其他容器。我需要做什么才能允许我的正常运行的 docker 访问其他 IP?

我的 unraidOS 服务器有一个静态 IP 192.168.1.14

Docker 1: 192.168.1.14:8401 (bridge)
Docker 2: 192.168.1.14:8402 (bridge)
Docker 3: 192.168.1.14:8403 (bridge)
Uptime Docker 4: 192.168.1.14:8400 (bridge)
Docker 5: 192.168.1.15 (custom: br0)
Docker 6: 192.168.1.16 (custom: br0)

我的“Uptime Docker 4”能够 ping 并连接到 Docker 1、Docker 2 和 Docker 3,因为它们都在“bridge”网络时间上。Docker 5 和 Docker 6 都在“custom: br0”网络上,因此它们有自己的 IP 地址,而我的“Uptime Docker 4”无法连接到它,因为它在不同的网络上。

我的解决方案是什么,以便 Docker 5 和 Docker 6 仍然保留其 IP,但仍可被 Uptime Docker 4 访问?

我有另一台电脑连接到我的网络,其 IP 为 192.168.1.103,“Uptime Docker 4”可以 ping 通它。它仍然无法 ping 通“Docker 5”和“Docker 6”,尽管这些 IP 的分配方式与我的电脑一样。

更新:对于 UnraidOS 用户来说,在“设置”>“Docker”下有一个名为“主机访问自定义网络”的选项。如果启用此选项,您将能够访问连接到 br0 的主机。我将所有容器移至 br0,并为我的组织分配了自定义 IP。

笔记:如果您重新启动服务器,“主机访问自定义网络”失败(即使它显示它已打开),您需要停止Docker,关闭“主机访问自定义网络”启动docker,再次停止docker,启用“主机访问自定义网络”,然后重新启动它以正确激活更改。

答案1

默认桥接仅有的连接到默认桥上的其他容器,这样可以隔离容器并允许轻松设置而不会损害其他“生产”容器,这是设计使然。UnRaid 还只公开了一些容器设置选项,您可能需要使用终端来解决。

基本上,您的“桥接”容器都在 /16 子网上,这就是它们无法 ping 其他 IP 的原因。我建议您阅读以尽可能熟悉;https://docs.docker.com/network/network-tutorial-standalone/

运行docker network inspect bridge检查设置。

要改变这种情况,您有几种选择;

  1. 您可以确认/编辑默认桥接网络设置。详细信息位于概述底部。如果您只想使用 ping,则不需要打开任何端口。根据您的本地网络更改网关/dns。https://docs.docker.com/network/bridge/#configure-the-default-bridge-network

  2. 你可以设置自己的 Docker 网络,并提供更多网络选项。这有点详细,你必须能够编辑 Docker 容器才能做到这一点,特别是更改它们的“网络驱动程序”,这是我没有把握UnRaid 有通过 GUI 提供的选项。https://docs.docker.com/network/network-tutorial-standalone/

相关内容