Docker Compose:从浏览器访问我的webapp

时间:2016-01-11 21:38:07

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

我发现这些文件非常缺乏(或者,我是愚蠢的),但这是我的设置:

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时,我会期待看到我的应用 - 但我拒绝连接。

我做错了什么傻事?

1 个答案:

答案 0 :(得分:3)

此处也相当新,但您是否在docker-compose文件上发布了端口?

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

ports:
  - "8080:8080"