如何像本地一样访问mongodb



我使用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。

最新更新