Docker撰写:从浏览器访问我的Web应用程序
我发现这个文档非常缺乏(或者我很笨),但是这是我的设置:
Web应用程序正在运行在Node
和Express
, 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文件中发布了你的ports?
您的Dockerfile将只显示端口,但不能打开对主机的访问。 发布(在docker run
命令中使用-p标志或在docker-compose文件中使用端口 )将允许从容器外部访问(请参阅文档中的端口 )类似这样的内容可能会有所帮助:
ports: - "8080:8080"