Как прикрепить постоянный том в docker-compose file для mongodb?

#mongodb #docker #docker-compose #docker-volume #mongo-express

#mongodb #docker #docker-compose #docker-volume #mongo-express

Вопрос:

У меня есть файл docker-compose, который вызовет контейнеры mongo и mongo-express в той же сети «mynet». Я создал сеть с помощью:

 docker network create mynet
  

Я создал том с именем «demo-vol» извне с помощью команды docker.

 docker volume create demo-vol
  

Внутри контейнера я создал образец коллекции mongo.
Когда я выполняю docker-compose up, я могу видеть, что контейнер запущен, но я не могу найти данные mongo в этом указанном томе.

Ниже приведен мой файл docker-compose.файл yaml

 version: '3'
services:
  mongo:
    image: mongo
    container_name: mymongo
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    volumes:
      - "/demo-vol:/data/db"
    networks:
      - mynet
    ports:
      - 27017:27017
  mongoexpress:
    image: mongo-express
    container_name: mymongoexpress
    ports:
      - 8081:8081
    volumes:
      - "/demo-vol:/data/db"
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
    depends_on:
      - mongo
    networks:
      - mynet
volumes:
  demo-vol:
    external: true
networks:
  mynet:
    external: true
  

Что мне нужно, так это:
Даже после удаления контейнера я хочу, чтобы мои данные оставались постоянными.

Как это сделать и, пожалуйста, объясните. Где я ошибаюсь?

Примечание: я новичок в концепциях Docker.

Заранее спасибо.

Ответ №1:

Вы можете использовать локальный драйвер для тома

 volumes:
  demo-vol:
    driver: local
  

и попробуйте удалить косую черту

 volumes:
  - demo-vol:/data/db