问题描述
我正在docker容器内运行移动应用程序后端服务器(使用Windows的Docker Desktop 2.4.0.0)。突然我的后端无法在localhost外部访问,因此无法从手机上进行物理测试。就像是主机上的附件一样,即使我尝试通过主机上的本地IP来访问它,也可以使用,但是如果我在网络上使用相同的IP,则无法访问。据我所知,我对环境所做的唯一更改是意外更新了Docker。任何帮助表示赞赏。亲切的问候。
顺便说一句,当我运行docker ps
来检查端口是否正确转发时,我要访问的容器已绑定到0.0.0.0。
version: "3"
services:
db:
image: MysqL:8.0.20
container_name: db
ports:
- "3306:3306"
web:
image: tomcat:9.0.35
container_name: web_app
environment:
JAVA_OPTS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
ports:
- "8888:8080"
- "8000:8000"
解决方法
检查Windows防火墙设置。其中一项更新可能已开始遵循这些设置,而不是绕过它们。有一个recent report of WSL2 bypassing the firewall,所以如果您使用它并在星期二更新了此补丁程序,则可能是原因。