我正在尝试使用docker容器测试我的Web应用程序,但是当我尝试通过浏览器访问它时,我无法看到它。
docker compose文件看起来像
version: '2'
services:
db:
image: postgres
volumes:
- ~/pgdata:/var/lib/postgresql/data/pgdata
environment:
POSTGRES_PASSWORD: "dbpassword"
PGDATA: "/var/lib/postgresql/data/pgdata"
ports:
- "5432:5432"
web:
build:
context: .
dockerfile: Dockerfile-web
ports:
- "5000:5000"
volumes:
- ./web:/web
depends_on:
- db
backend:
build:
context: .
dockerfile: Dockerfile-backend
volumes:
- ./backend:/backend
depends_on:
- db
dockerfile-web看起来像
FROM python
ADD web/requirements.txt /web/requirements.txt
ADD web/bower.json /web/bower.json
WORKDIR /web
RUN \
wget https://nodejs.org/dist/v4.4.7/node-v4.4.7-linux-x64.tar.xz && \
tar xJf node-*.tar.xz -C /usr/local --strip-components=1 && \
rm -f node-*.tar.xz
RUN npm install -g bower
RUN bower install --allow-root
RUN pip install -r requirements.txt
RUN export MYFLASKAPP_SECRET='makethewebsite'
CMD python manage.py server
我的docker机器的ip是
docker-machine ip 192.168.99.100
但是当我尝试的时候 http://192.168.99.100:5000/ 在我的浏览器中它只是说无法访问该网站。 好像是在拒绝连接。
当我在浏览器中ping我的数据库时,我可以在日志中看到我的数据库响应 http://192.168.99.100:5432/
所以我在容器内尝试了wget并得到了
$ docker exec 3bb5246a0623 wget http://localhost:5000/
--2016-07-23 05:25:16-- http://localhost:5000/
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:5000... failed: Connection refused.
Connecting to localhost (localhost)|127.0.0.1|:5000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 34771 (34K) [text/html]
Saving to: ‘index.html.1’
0K .......... .......... .......... ... 100% 5.37M=0.006s
2016-07-23 05:25:16 (5.37 MB/s) - ‘index.html.1’ saved [34771/34771]
任何人都知道我如何通过浏览器显示我的网络应用程序?
答案 0 :(得分:0)
我必须为我的烧瓶应用程序启用外部可见性。 你可以在这里看到它 Can't connect to Flask web service, connection refused