我发现这些文件非常缺乏(或者,我是愚蠢的),但这是我的设置:
Webapp正在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
时,我会期待看到我的应用 - 但我拒绝连接。
我做错了什么傻事?
答案 0 :(得分:3)
此处也相当新,但您是否在docker-compose文件上发布了端口?
您的Dockerfile只会公开端口,但不能公开访问您的主机。发布(在docker run
命令上使用-p标志或在docker-compose文件上使用ports
。将从容器外部启用访问(请参阅ports in the docs)
这样的事情可能有所帮助:
ports:
- "8080:8080"