Docker撰写端口问题。无法在localhost上启动docker项目

时间:2016-08-26 12:37:41

标签: docker-compose dockerfile docker-for-mac docker-desktop

我在mac(El Capitan,稳定,10.11.6)上安装 Docker Desktop for Mac

我在官方节点图片上运行一个简单的JavaScript应用程序。这是Dockerfile的样子:

FROM node

WORKDIR /usr/local/src

这是docker-compose.yml

version: '2'

services:
  web:
    container_name: myproject_dev
    build: .
    command: npm run development
    ports:
     - "1234:8000"
     - "1235:8080"
     - "80:80"
    volumes:
      - ./my-project:/usr/local/src

正常运行docker-compose up

myproject_dev | http://localhost:8080/webpack-dev-server/
myproject_dev | webpack result is served from /assets/
myproject_dev | content is served from /usr/local/src

docker ps显示端口已映射:

CONTAINER ID        IMAGE                        COMMAND                 CREATED             STATUS              PORTS                                                                NAMES
820694f618b4        myproject_web   "npm run development"   20 minutes ago      Up 20 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:1234->8000/tcp, 0.0.0.0:1235->8080/tcp   myproject_dev

但我无法在浏览器上看到项目页面(使用localhost:1234)。当我在docker之外运行项目时工作正常。因此,该项目的问题被排除在外。

尝试以下方法:

  1. 使用其他node泊坞窗
  2. 在docker beta和稳定版本之间切换
  3. 停止所有主机apache / nginx服务
  4. 但没有运气:(我在这里失踪了什么?

2 个答案:

答案 0 :(得分:7)

您正在运行的服务只是监听容器localhost接口,因此容器外部的任何内容都无法访问它。它需要听0.0.0.0

答案 1 :(得分:0)

Ping无法正常工作;它查询主机,而不是该主机的端口。要测试您连接到给定主机上给定端口的能力,您可能需要nc -vz <host> <port>之类的内容。