无法在Windows 10上使用docker访问localhost:8080

在我的计算机上运行我的docker-compose-development.yaml时,我无法连接到http://localhost:8080

另外,我可以运行docker-compose -f docker-compose-development.yaml exec web curl http://localhost:8080 ,我得到了一个结果。 所以它似乎不是一个代码问题。

我已经做了什么:

  • 使用$ docker inspect ...容器IP直接连接$ docker inspect ...
  • 试试另一台Windows 10笔记本电脑( 它的工作原理
  • localhost更改为127.0.0.10.0.0.0
  • 尝试另一个端口比8080

这是我的$ docker version

 Client: Version: 17.11.0-ce API version: 1.34 Go version: go1.8.4 Git commit: 1caf76c Built: Mon Nov 20 18:30:11 2017 OS/Arch: windows/amd64 Server: Version: 17.11.0-ce API version: 1.34 (minimum version 1.12) Go version: go1.8.5 Git commit: 1caf76c Built: Mon Nov 20 18:39:28 2017 OS/Arch: linux/amd64 Experimental: true 

这是我的Dockerfile

 FROM node:9.1-alpine RUN npm install -g nodemon WORKDIR /opt/webserver/ COPY . /opt/webserver RUN npm install CMD ["npm","run","start"] EXPOSE 8080 RUN rm -rf /tmp/* /var/tmp/* 

这是我的docker-compose-development.yaml

 version: "3" services: web: image: registry.gitlab.com/soundtrack/webapp ports: - "8080:8080" links: - database volumes: - ".:/opt/webserver:rw" database: image: mongo:3.4.10 

来自docker-compose ps命令:

 $ docker-compose -f .\docker-compose-development.yaml ps Name Command State Ports -------------------------------------------------------------------------------- webapp_database_1 docker-entrypoint.sh mongod Up 27017/tcp webapp_web_1 npm run start Up 0.0.0.0:8080->8080/tcp 

尝试以下步骤,

1 – 列出所有正在运行的docker集装箱

 docker ps -a 

运行此命令后,您应该能够查看当前正在运行的所有Docker容器,并且应该看到名为webapp_web_1的容器在此处列出。

2 – 获取您的networking服务器容器运行的IP地址。 要做到这一点,运行以下命令。

  docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" webapp_web_1 

尝试访问在运行上述命令之后显示的IP,并使用该IP而不是本地主机访问正在运行的容器。

我已经回答了一个与Windows上的确切问题有关的类似问题。 请通过此链接参考以获得有关此问题为何存在的详细信息。

希望这可以帮助你。