简体   繁体   English

docker compose 中 mongodb 的卷配置

[英]Volumes configuration for mongodb in docker compose

I tried a long time to mount mongo db to my local storage, but the code comment( # -./database:/data/db) can not successfully mount if I want to initialize db at the same time.我尝试了很长时间将mongo db挂载到我的本地存储,但是如果我想同时初始化db,代码注释(#-./database:/data/db)无法成功挂载。 Then I tried to create a volume as shown now(create a volumes section separately).然后我尝试创建一个卷,如现在所示(单独创建一个卷部分)。 and it works.它有效。 Do you know the difference and why?你知道其中的区别吗?为什么? could you kindly point it out?你能指出来吗? Thanks in advance.提前致谢。

before modification修改前

version: '3.5'

services:

  mongodb:
    image: mongo
    container_name: mongodb
    restart: unless-stopped
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=root
    volumes:
      - ./docker-entrypoint-initdb.d/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
      - ./database:/data/db    # not work 
  mongo-express:
    image: mongo-express
    container_name: mongo-express
    restart: unless-stopped
    ports:
      - 8081:8081
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=root
      - ME_CONFIG_MONGODB_ADMINPASSWORD=root
      - ME_CONFIG_MONGODB_SERVER=mongodb
      - ME_CONFIG_MONGODB_ENABLE_ADMIN=true
      - ME_CONFIG_BASICAUTH_USERNAME=xhp
      - ME_CONFIG_BASICAUTH_PASSWORD=xhp
    depends_on:
      - mongodb

after modification修改后

version: '3.5'

services:

  mongodb:
    image: mongo
    container_name: mongodb
    restart: unless-stopped
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=root
    volumes:
      - ./docker-entrypoint-initdb.d/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
      - mongodb:/data/db
      # - ./database:/data/db     not work 
  mongo-express:
    image: mongo-express
    container_name: mongo-express
    restart: unless-stopped
    ports:
      - 8081:8081
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=root
      - ME_CONFIG_MONGODB_ADMINPASSWORD=root
      - ME_CONFIG_MONGODB_SERVER=mongodb
      - ME_CONFIG_MONGODB_ENABLE_ADMIN=true
      - ME_CONFIG_BASICAUTH_USERNAME=xhp
      - ME_CONFIG_BASICAUTH_PASSWORD=xhp
    depends_on:
      - mongodb
volumes:
  mongodb:

The difference results in different local directories.差异导致不同的本地目录。 My problem should be solved by deleting the old volume and update it.我的问题应该通过删除旧卷并更新来解决。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM