【问题标题】:docker-compose up not binding portsdocker-compose up 不绑定端口
【发布时间】:2018-11-04 12:53:14
【问题描述】:
/usr/local/bin/docker-compose  up

我在 Amazon Linux 上使用此命令。它不绑定端口,所以我无法连接到容器内运行的服务。相同的配置正在本地开发服务器上运行。不知道我错过了什么。

[root@ip-10-0-1-42 ec2-user]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
ec6320747ef3        d8bd4345ca7f        "/bin/sh -c 'gulp bu…"   30 seconds ago      Up 30 seconds                           vigilant_jackson

这里是 docker-compose.yml:

version: '2'
services:
  web:
    build: .
    command: gulp serve
    env_file:
      - .env
    volumes:
      - .:/app/code
    ports:
      - "8050:8000"
      - "8005:8005"
      - "8888:8888"

npm -v 5.6.0

docker -v Docker version 18.06.1-ce, build e68fc7a215d7133c34aa18e3b72b4a21fd0c6136

【问题讨论】:

  • 请提供您的 docker-compose yml 配置
  • 感谢您的回复,刚刚用 docker-compose yml 文件编辑了问题。
  • 端口字段为空,通常显示一些内容
  • 是的,相同的配置和来源显示另一台服务器上的端口。但在此服务器上未显示任何内容。不知道我错过了什么。
  • 您是否尝试运行 'docker-compose logs' 以查看是否有任何与端口映射相关的信息?

标签: docker docker-compose


【解决方案1】:

您确定未发布端口吗?

使用docker inspect,我猜他们已经发布了。如果是这种情况,那么我的猜测是,当您在 AWS 上时,您不会 ssh 到打开的端口(如果我的问题正确,8050、8005、8888 是 AWS linux 实例的端口)。

【讨论】:

  • 我检查了容器,这里是网络设置: "NetworkSettings": { "Bridge": "", "SandboxID": "39fbfb3ab81391f09b38cbe5360c95014f0dae2f49dc51f5b2a1dd5075664d05", "HairpinMode": false, "LinkLocalIPv6Address" ", "LinkLocalIPv6PrefixLen": 0, "端口": {},