node.js - 无法访问本地主机:8080 with docker on windows 10

标签 node.js docker localhost windows-10

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

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

我已经完成的工作:

  • 通过$ docker inspect ...
  • 直接在容器IP上连接
  • 尝试使用另一台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
    
    ps中的docker-compose命令:
    $ 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
    

    最佳答案

    我运行了容器:

    docker run -d -it -p 10080:80 --name=container-cool-name <container-id>
    

    而且我可以看到正在运行的应用带有 curl (在容器内部)
    docker exec -ti container-cool-name bash
    #curl localhost:80
    

    Here我读到:

    If you’re using Docker Toolbox



    docker-machine ip会告诉你”

    我的应用正确显示在192.168.99.100:10080

    关于node.js - 无法访问本地主机:8080 with docker on windows 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47498101/

    相关文章:

    javascript - Node.JS - 在模块中使用原型(prototype)

    node.js - digital ocean 上的 dokku sass 错误

    javascript - 从服务器 Controller 访问 MEANjs 中的 API 端点

    linux - docker 覆盖网络是否支持从主机到容器的通信?

    python - 使用 tkinter 在 jupyter 笔记本内部进行 nltk 绘制

    testing - 如何使用TestCafe在Electron中在没有LocalHost的情况下发送请求URL

    node.js - 在数组 mongodb 中添加另一个项目

    docker - 当 exec docker 使用 "-v/path:/path"参数运行时,Dockerfile 中的文件丢失

    Java OPC-UA 客户端 Eclipse Milo 端点 URL 更改为本地主机

    python - 本地主机上的 Google App Engine GQL 查询