【问题标题】:docker-compose port expose not working on mac 10.13.6 (High Sierra)docker-compose 端口暴露在 mac 10.13.6 (High Sierra) 上不起作用
【发布时间】:2018-08-17 19:24:56
【问题描述】:

我有一个托管 Node 应用程序的 docker 容器。我正在尝试使用以下 URL https://localhost:8000 连接应用程序,但连接被拒绝。我使用docker-compose up -d 命令运行它。

这是我运行docker-compose ps时得到的响应

           Name                  Command      State           Ports         
-----------------------------------------------------------------------------
freeswitch-console_console_1   nodemon start   Up      0.0.0.0:8000->8000/tcp

我的 docker-compose 文件是

version: '3'
services:
  console:
    build: .
    ports:
    - "8000:8000"
    image: console:cp
    volumes:
    - .:/usr/src/app
    - /usr/src/app/node_modules

我的 Dockerfile 是

FROM node:10

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)

RUN npm install -g nodemon

COPY package*.json ./


RUN npm install
# If you are building your code for production
# RUN npm install --only=production

# Bundle app source
COPY . .

EXPOSE 8000
CMD [ "nodemon", "start" ]

我尝试了以下命令,但它也不起作用:

docker run -p 8000:8000 console:cp nodemon index.js

更多细节

docker-compose version 1.22.0, build f46880f
Docker version 18.06.0-ce, build 0ffa825
MacOSX 10.13.6 (High Sierra)

有什么想法吗?提前致谢。

【问题讨论】:

  • 运行时服务器的输出是什么?
  • 对不起,我更新了原来的问题。
  • 你能验证节点应用程序实际运行并绑定到8000端口吗?
  • 我会运行这个命令 docker run -p 8000:80 nginx 只是为了确定它是否是操作系统的问题,如果它是你的应用程序的问题,则不允许暴露。
  • @gesellix 是的,它是:server.listen(8000, '0.0.0.0', function(){ console.log("server running at localhost:8000/") });

标签: docker docker-compose containers dockerfile


【解决方案1】:

最后我删除了设置为以下的 Docker 守护程序配置

{
 "debug" : true,
 "userland-proxy" : false,
 "experimental" : true
}

它开始工作了。我认为这与用户级代理有关。

感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 2019-10-24
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2018-09-03
    • 1970-01-01
    • 2019-06-22
    相关资源
    最近更新 更多