JCS*_*S81 9 networking docker macvlan
在我的 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)
Run Code Online (Sandbox Code Playgroud)
如何让主机通过 macvlan 网络访问自己的容器?
我需要特定的应用程序来通过这个网络进行交互,所以使用docker exec不能解决我的问题;)。
Ann*_*ell 11
您可以通过执行以下操作来做到这一点:
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
Run Code Online (Sandbox Code Playgroud)
在哪里:
enp7s0 - 物理适配器的名称
192.168.9.252/32 - 网络上的真正新 IP
192.168.9.228/32 - 使用 macvlan 的容器 IP
请注意,这不会在重新启动后继续存在,因此您需要编写脚本以运行每次重新启动或使用另一种方法使其持久化
如果没有外部交换机的特殊支持,主机无法与本地 macvlan 设备通信。请参阅此 Red Hat 文档,其中讨论了虚拟机的 macvlan 设备的使用:
\n\n\n\n但是,当来宾虚拟机配置为使用 type=\'direct\' 网络接口(例如 macvtap)时,尽管能够与网络上的其他来宾和其他外部主机进行通信,但来宾虚拟机无法与其自己的主机进行通信。
\n\n这种情况实际上不是错误 \xe2\x80\x94 它是 macvtap 的定义行为。由于主机的物理以太网连接到 macvtap 网桥的方式,从访客进入该网桥并转发到物理接口的流量无法反弹回主机的 IP 堆栈。此外,从主机 IP 堆栈发送到物理接口的流量无法反弹回 macvtap 网桥以转发到来宾。
\n
| 归档时间: |
|
| 查看次数: |
5785 次 |
| 最近记录: |