在我的 Linux 网络中,我无法通过专用 macvlan 网络从运行它们的主机访问我的 docker 容器。到此 macvlan 网络的所有其他连接都正常。
所以基本上设置是:
DOCKER1 eth0 172.0.0.1 (default)
| eth1 10.0.0.1 (macvlan)
CONTAINER1 10.0.0.11 (macvlan)
DOCKER2 eth0 172.0.0.2 (default)
| eth1 10.0.0.2 (macvlan)
CONTAINER2 10.0.0.12 (macvlan)
- 主机 DOCKER1 无法访问 CONTAINER1
- 主机 DOCKER2 无法访问 CONTAINER2
- 主机 DOCKER 无法访问 DOCKER2
- 主机 DOCKER1 可以访问 CONTAINER2
- 主机 DOCKER2 可以到达 DOCKER1
- 主机 DOCKER 无法访问 CONTAINER1
- 所有容器都可以互相到达
- 物理网络中的所有其他设备都可以到达
- 都可以到达网关/互联网
如何使主机通过 macvlan 网络访问其自己的容器?
我需要特定的应用程序通过该网络进行交互,因此使用docker exec
不能解决我的问题;)。
您可以通过执行以下操作来完成此操作:
ip link add foobar link enp7s0 type macvlan mode bridge
ip addr add 192.168.9.252/32 dev foobar
ip link set foobar up
ip route add 192.168.9.228/32 dev foobar
Where:
enp7s0
- 您的物理适配器的名称
192.168.9.252/32
- 您网络上的真正新IP
192.168.9.228/32
- 使用 macvlan 的容器的 IP
请注意,这不会在重新启动后继续存在,因此您需要编写脚本以在每次重新启动时运行或使用其他方法使其持久
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)