我有 2 个 docker 容器,1 个正在运行 pihole,另一个正在运行 Nextcloud。现在,它们都使用默认网桥,在主机端口 80 上运行的 pihole 和在主机端口 8080 上运行的 Nextcloud。理想情况下,我希望 docker 容器在 LAN 上有自己的 IP,而不是在主机 IP 上运行它在 LAN 中运行,网络上的其他机器可以访问它。我该怎么做呢?
我有 2 个 docker 容器,1 个正在运行 pihole,另一个正在运行 Nextcloud。现在,它们都使用默认网桥,在主机端口 80 上运行的 pihole 和在主机端口 8080 上运行的 Nextcloud。理想情况下,我希望 docker 容器在 LAN 上有自己的 IP,而不是在主机 IP 上运行它在 LAN 中运行,网络上的其他机器可以访问它。我该怎么做呢?
我自己想通了。我必须为此创建一个 macvlan 才能工作。在 portainer(我用于 docker 管理)中,我使用我的 LAN 的相同网关和子网创建了一个 macvlan 配置,然后将 IP 地址范围设置为 192.168.1.100/32(因此它获得了 IP 192.168.1.100)。然后,我从名为 macvlan100 的配置中创建了实际的 macvlan,并使用命令将其附加到容器,该命令
docker network connect macvlan100 charming_hoover
为容器提供了 192.168.1.100 的 IP。