如何解决docker-for-windows 和 WSL2 之间的端口映射是如何完成的?
我的 Windows 10 专业版中有 WSL2 和 ubuntu 18.04 发行版。 我安装了 docker-desktop,它使用基于 WSL2 的引擎,并为此发行版启用了 WSL 集成。
例如,我正在创建一个端口映射为 8080:80 的 docker 容器。 也就是说,容器的 80 端口映射到主机端口(windows 主机端口)8080。对吗?
当容器启动时,以下场景中的 curl 工作正常:
# From windows command prompt
curl http://localhost:8080/
# From WSL2 bash
curl http://localhost:8080/
当您在 Windows 命令提示符下键入 localhost 时,它是 Windows 10 计算机(IP)。
WSL 2 在真正的 Linux 内核上使用轻量级实用程序 VM 内存占用小,在后台管理和运行。
因此,当您在 WSL2 中键入 localhost 时,它是 WSL2 VM(IP)。
两个 IP 是不同的。那么来自两个终端的 localhost:8080
能够连接到正确的端口是怎么发生的呢?
在 WSL2 中创建 docker 容器(带有端口映射)时,幕后会发生什么?
在这种情况下,docker 容器、windows 主机和 WSL2 VM 之间的网络是如何完成的?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。