Docker Container在localhost外部无法访问

问题描述

我正在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,所以如果您使用它并在星期二更新了此补丁程序,则可能是原因。