gpt4 book ai didi

docker - 我的 docker 的 macvlan 设置有什么问题?

转载 作者:行者123 更新时间:2023-12-02 18:30:47 28 4
gpt4 key购买 nike

我在学习"docker with macvlan" .以下是我的设置:
G 192.168.1.1,网关(物理)W 192.168.1.2,windows 10,以太网卡(物理)V 192.168.1.5,virtualbox+centos7,桥接网络c1 192.168.1.10, docker 容器在macnetc2 192.168.1.11, docker 容器在macnetmacnet由创建docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=enp0s3 macnetc1c2由创建docker run -it --net=macnet --ip=192.168.1.10 -h=c1 anapsix/alpine-java bashdocker run -it --net=macnet --ip=192.168.1.11 -h=c2 anapsix/alpine-java bash
docker 版本是 17.06.0-ce

我期待下面的所有工作,但只有第一个工作(-> 表示 ping):c1 <--> c2好的c1 <--> V失败c1 <--> W失败c1 --> G失败

以上步骤有什么问题吗?

顺便说一句,有人可以帮助创建标签“macvlan”和“ipvlan”吗?

最佳答案

这是预期的行为,因为您使用 macvlan 创建的网络在您的 VM 和 macvlan 网桥之间没有任何连接(默认情况下 docker create macvlan network in bridge 模式)。您创建的容器 C1 和 C2 的接口(interface)连接到 macvlan 网桥。这就是为什么 C1 和 C2 能够相互 ping 通,但是从 VM( guest )您无法 ping C1 和 C2,因此无法从主机。

要从 VM 连接到容器 C1 和 C2,请创建一个类型为 bridge 的接口(interface)并分配一个 ip。下面的命令:(这些命令可能会产生副作用。您可能会完全失去与虚拟机的连接。如果您通过 ssh 连接,请确保您有 2 个连接到虚拟机的接口(interface)和 ssh 到虚拟机的接口(interface),而不是网络 192.168.1.0/中具有 IP 的接口(interface)/24)

  • 删除网络 192.168.1.0/24
  • 中具有 ip 的接口(interface)的 ip
  • ip addr delete (ip_of_interface) dev (interface eg-eth0)
  • ip link add mymacvlan1 link (VM interface name eg. - eth0) type macvlan mode bridge
  • ip link set mymacvlan1 up
  • ip addr add 192.168.1.20/24 dev mymacvlan1
  • ping 你的容器 - ping (C1 ip) -I mymacvlan1

  • 请注意,这些更改不会持续启动

    为了能够从主机ping,您需要确保VM接口(interface)在虚拟机VM网络设置中具有混杂模式。

    关于docker - 我的 docker 的 macvlan 设置有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45451647/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com