我使用docker构建系统以在本地进行测试。
还可以使用docker-compose将所有图像绑定到一个基础结构。
下面是我使用的图像。
(烧瓶Web应用程序的python)
[docker-compose.yml]
version: '3.7'
services:
nginx:
build:
context: .
dockerfile: docker/nginx/dockerfile
container_name: nginx
hostname: nginx-dev
ports:
- '80:80'
networks:
- backend
mongodb:
build:
context: .
dockerfile: docker/mongodb/dockerfile
container_name: mongodb
hostname: mongodb-dev
ports:
- '27017:27017'
networks:
- backend
web_project:
build:
context: .
dockerfile: docker/web/dockerfile
container_name: web_project
hostname: web_project_dev
ports:
- '5000:5000'
networks:
- backend
tty: true
depends_on:
- mongodb
links:
- mongodb
redis:
image: redis:latest
container_name: redis
hostname: redis_dev
networks:
backend:
driver: 'bridge'
[mongo的dockerfile]
FROM mongo:latest
EXPOSE 27017
[python的dockerfile]
FROM python:3.6.5
COPY . ./home
WORKDIR home
RUN pip install -r app/requirements.txt
CMD python manage.py run
当我在本地运行python flask Web应用程序时,它工作正常,因为mongodb也位于本地。
但是我使用docker-compose up
运行,它无法访问mongodb。
也许每个docker映像都是分开的。
我认为我必须缩小每个图像才能访问其他图像。
但是我是docker的新手,所以请与它混淆。
这里有什么解决办法吗?
谢谢。
答案 0 :(得分:0)
请确保您在Flask应用中使用主机名${libs.
而不是mongodb-dev
引用Mongo
答案 1 :(得分:0)
[已解决]
我将'host': 'mongodb-dev:27017'
修改为'host': 'mongodb-:27017'
,
它运行完美。
我认为它是通过链接发生的:mongodb。