docker-compose - Docker Compose 端口问题。无法在 localhost 上启动 docker 项目

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

我在带有 的 mac (El Capitan, stable, 10.11.6) 上适用于 Mac 的 Docker 桌面 安装稳定。

我在官方节点图像上运行一个简单的 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 之外运行项目时工作正常。因此,排除了项目的问题。

尝试了以下方法:
  • 使用不同的node docker
  • 在 docker beta 和稳定版本之间切换
  • 停止所有主机 apache/nginx 服务

  • 但没有运气:(我在这里错过了什么?

    最佳答案

    您正在运行的服务只监听容器 localhost接口(interface),所以容器之外的任何东西都不能访问它。它需要收听0.0.0.0 .

    关于docker-compose - Docker Compose 端口问题。无法在 localhost 上启动 docker 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166553/

    相关文章:

    linux - 如果 docker 使用底层 linux 操作系统,为什么要在 Dockerfile 的 FROM 行中指定操作系统

    postgresql - 如何解决空 docker-entrypoint-initdb.d 的问题? (PostgresQL + docker )

    docker - 如何配置 Docker 在 Docker Desktop for Mac 中使用哪个 DNS 服务器?

    docker - 如何在 Mac 上的 Docker 中修复 'Hash Sum Mismatch'

    docker - 无法从 MacOs 访问 Jenkins(Docker 容器)网址(172.17.0.2)

    docker - 在容器名称上使用 glob/通配符运行 docker 命令

    docker - 使用 docker-compose 时 redis_slave 无法访问 redis_master

    node.js - 如何在 Dockerfile.template 中的 `tsc` 之前运行 TypeScript `COPY`?

    docker - ping 在 docker 容器中工作但不 curl

    docker - 需要 'y'响应的Docker构建镜像