windows - 如何从Windows上运行的Docker容器中设置LAN端点?

标签 windows docker

我正在使用WSL2运行Windows 10并安装了Docker。我创建了一个Docker容器,并且可以从该容器中ping和ssh到与Windows主机位于同一物理LAN上的主机,但是arping只是表面上平平。
在Windows上从命令提示符启动容器的示例:

user@HOST C:\Users\user>wsl --list --verbose
* Ubuntu                 Running         2
  docker-desktop         Running         2
  docker-desktop-data    Running         2
user@HOST C:\Users\user>bash
user@host:~$ sudo docker run -it --rm alpine:3.12.0
/ # ping -c1 -w1 192.168.32.21
PING 192.168.32.21 (192.168.32.21): 56 data bytes
64 bytes from 192.168.32.21: seq=0 ttl=37 time=1.588 ms

--- 192.168.32.21 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 1.588/1.588/1.588 ms
/ # arping -c1 -w1 192.168.32.21
ARPING 192.168.32.21 from 172.17.0.4 eth0
Sent 1 probe(s) (0 broadcast(s))
Received 0 response(s) (0 request(s), 0 broadcast(s))
我尝试使用默认网络和'--net = host'运行容器;相同的结果。
上面示例中的'-c1 -w1'选项简洁明了。删除它们会导致arping超时。
任何建议/建议将不胜感激。我真的需要从容器内部进行琶音工作。

最佳答案

因此,通常ARP仅在客户端连接到的本地LAN网段上起作用,它不会遍历任何分组路由器。
查看您那里的输出,您尝试从172.17.0.4转到192.168.32.21,它将位于不同的子网中,因此ARP无法正常工作。

关于windows - 如何从Windows上运行的Docker容器中设置LAN端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64574780/

相关文章:

windows - 调整图像大小的批处理脚本

docker - docker compose run 命令中环境变量的使用

php - Docker容器本地连接MySQL数据库->重定向到另一个容器

php - proc_open 被禁用。但不在 php.ini 中

c++ - readv(), writev(), WSARecv(), WSASend()

windows - Delphi中的剪贴板操作

c# - 在计算机启动时启动 WPF 应用程序

mysql - 从 Docker 容器中访问主机上的 MySQL 数据库

php - Mariadb Docker 容器拒绝使用数据库架构进行初始化

javascript - 从 MongoDB 检索 Docker 日志