如何从其他容器以及主机(使用MongoDB Compass)同时访问dockerized mongodb?

问题描述 投票:0回答:1

背景

我有两个 docker 容器

  1. 我的mongodb
  2. mydrf

两个容器都在同一个网络“sj”下

启动容器后,可以从主机(Windows 11)访问“mymongodb”容器。
但是,在尝试从“mydrf”容器中的 python 代码连接到“mymongodb”容器后,主机系统上的 mongodb compass 无法连接到“mymongodb”容器。

如果容器被关闭并重新启动,主机上的 Compass 能够再次连接到“mymongodb”容器。

问题

如何配置容器以便同时从其他容器和主机系统访问mongodb?

以下是我的

docker-compose.yml

version: '3.8'

services:
  mongo:
    image: my-db-mongo:1.0.0
    container_name: mymongodb
    ports:
      - "27017:27017"
    volumes:
      - ./MongoDB:/data/db
    command: mongod --bind_ip_all      
    networks:
      - sj
  drf:
    image: my-drf:1.0.0
    container_name: mydrf    
    ports:
      - "8080:8080"
      - "5678:5678"
    volumes:
      - type: bind
        source: ./drf
        target: /code
    networks:
      - sj
    depends_on:
      - mongo        
    command: 
      - sh
      - -c
      - |
        pip install --upgrade pip \
        && pip install pipenv \
        && pip install -r MyRequirement.txt \
        && tail -f /dev/null
networks:
  sj:
    driver: bridge

我尝试过的事情

尝试使用以下命令,但它不起作用:

mongod --bind_ip 0.0.0.0,host.docker.internal
python mongodb docker-compose mongodb-compass
1个回答
0
投票

docker 镜像(my-db-mongo)是使用官方 mongo 镜像创建的

来自蒙戈:7.0.6

运行 mkdir -p /data/db

暴露27017

© www.soinside.com 2019 - 2024. All rights reserved.