TLDR;我无法从其他网络客户端ping我的docker容器。只有当容器主动对网关执行ping操作之后,我才可以访问这些容器。
在我的家庭网络(192.168.0.0/24)上,我运行一个网关192.168.0.1,该网关承载DNS服务器并路由Internet流量。我的docker主机(192.168.0.100)有一个macvlan网络,其创建为
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.100 -o parent=eth0 dockernet
我的容器现在确实获得了静态IP,例如192.168.0.200。容器可以主动ping通网络上的其他物理主机,这样就可以正常工作。
但是,如果我启动一个新容器,则无法从我的物理网络ping通它。不是来自docker主机(这可能是对macvlan网络的限制),也不是来自网关或任何其他客户端。一旦容器主动对网关执行ping操作,其他客户端也可以访问它。
所以我想需要完成一些路由,在那儿我需要您的帮助。
客户端在debian buster上运行,并且我使用不受管的交换机来连接客户端。
上面缺少的信息是我在raspbian上运行docker。所以这个问题实际上是Docker MACVLAN only works Outbound
的重复在主机上运行sudo rpi-update
以使其起作用