【问题标题】:Docker Compose: Accessing my webapp from the browserDocker Compose:从浏览器访问我的 webapp
【发布时间】:2016-01-11 21:38:06
【问题描述】:

我发现文档对此非常缺乏(或者,我很愚蠢),但这是我的设置:

Webapp 在NodeExpress 上运行,在port 8080 中。它还与 MongoDB 容器连接(因此我使用 docker-compose)。

在我的 Dockerfile 中,我有:

FROM node:4.2.4-wheezy

# Set correct environment variables.
ENV HOME /root

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app/
RUN npm install;

# Bundle app source
COPY . /usr/src/app

CMD ["node", "app.js"]

EXPOSE 8080

我跑:

docker-compose build web
docker-compose build db
docker-compose up -d db
docker-compose up -d web

当我运行docker-machine ip default 时,我得到192.168.99.100

因此,当我在浏览器中访问 192.168.99.100:8080 时,我会期望看到我的应用程序 - 但连接被拒绝。

我在这里做错了什么傻事?

【问题讨论】:

  • 你能分享你的 docker-compose.yml 文件吗?

标签: node.js deployment docker dockerfile docker-compose


【解决方案1】:

这里也很新,但是您是否在 docker-compose 文件中发布了您的端口?

您的 Dockerfile 只会公开端口,但不会开放对主机的访问。发布(在 docker run 命令上使用 -p 标志或在 docker-compose 文件上使用 ports。将允许从容器外部访问(请参阅 ports in the docs) 这样的事情可能会有所帮助:

ports:
  - "8080:8080"

【讨论】:

  • 啊,就像我在 Docker 中发现的所有东西一样,一条简单的代码就解决了我所有的问题。谢谢老哥!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多