Docker撰写:从浏览器访问我的Web应用程序

我发现这个文档非常缺乏(或者我很笨),但是这是我的设置:

Web应用程序正在运行在NodeExpressport 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文件中发布了你的ports?

您的Dockerfile将只显示端口,但不能打开对主机的访问。 发布(在docker run命令中使用-p标志或在docker-compose文件中使用端口 )将允许从容器外部访问(请参阅文档中的端口 )类似这样的内容可能会有所帮助:

 ports: - "8080:8080"