我使用docker构建系统,以便在本地进行测试。
还使用docker组合将所有图像绑定到一个基础设施。
下面是我使用的图片。
- nginx:最新
- mongo:最新
- ubuntu:最新
- python:3.6.5
(用于烧瓶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'
[蒙戈码头文件]
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的新手,所以对它感到困惑。
这里有什么解决方案吗?
谢谢。
确保在Flask应用程序中使用主机名mongodb-dev
而不是localhost
引用Mongo
[已解决]
我将'host': 'mongodb-dev:27017'
修改为'host': 'mongodb-:27017'
,
而且效果非常好。
我认为它是通过链接发生的:mongodb。