为什么在使用 macvlan 时无法从外部计算机通过主机名 ping 容器?

jca*_*vtl 5 networking docker

我正在使用以下配置创建 macvlan:

sudo docker network create -d macvlan \
    --subnet=192.168.4.0/24 \
    --gateway=192.168.4.1 \
    -o macvlan_mode=bridge \
    -o parent=eth0 macvlan70
Run Code Online (Sandbox Code Playgroud)

然后我使用以下命令运行高山图像:

docker run --net=macvlan70 --hostname=thehost --ip=192.168.4.17 -it  alpine /bin/sh
Run Code Online (Sandbox Code Playgroud)

此时我转移到 LAN 中的另一台机器 - 主机无法在没有网桥的情况下与 Macvlan 容器连接。

我可以ping 192.168.4.17成功。但ping thehost不会有结果。在路由器管理页面中,IP192.168.4.17被识别,但没有关联的主机名。

Edw*_*win 2

正如 docker文档中所述,用户定义的主机名无法从容器外部获得。

即使在主机网络模式下,容器默认也有自己的 UTS 命名空间。因此 --hostname 在主机网络模式下是允许的,并且只会更改容器内的主机名