簡體   English   中英

"Docker:如何使用 docker-compose 將數據從主機映射到容器(mongo)"

[英]Docker: How to volume map data from host to container (mongo) in using docker-compose

我正在嘗試使用 docker-compose 將數據從主機映射到容器。 我從prisma 文檔<\/a>中找到了這個docker-compose.yml<\/strong>

version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.34
    restart: always
    ports:
      - '4466:4466'
    environment:
      PRISMA_CONFIG: |
        port: 4466
        managementApiSecret: mysecret42
        databases:
          default:
            connector: mongo
            uri: mongodb://prisma:prisma@mongo
  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: prisma
      MONGO_INITDB_ROOT_PASSWORD: prisma
    ports:
      - '27017:27017'
    volumes:
      - mongo:/var/lib/mongo
volumes: 
  mongo:

您所描述的不是 docker 的行為。 Prismagraph 程序中必須有一些東西可以在每次啟動時擦除所有數據。

docker compose down需要-v標志才能刪除命名卷。

https://docs.docker.com/compose/reference/down/

您可以通過執行以下操作來確認這一點:

docker volume ls

docker volume inspect mongo

更新:mongo 存儲數據的位置是/var/lib/mongodb ,而不是/var/lib/mongo

更改您的 docker-compose 文件,它應該可以工作。

  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: prisma
      MONGO_INITDB_ROOT_PASSWORD: prisma
    ports:
      - '27017:27017'
    volumes:
      - mongo:/var/lib/mongodb
volumes: 
  mongo:

以下工作:

mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: prisma
      MONGO_INITDB_ROOT_PASSWORD: prisma
    ports:
      - '27017:27017'
    volumes:
      - mongo:/data/db
volumes: 
  mongo:

為我工作。

  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: prisma
      MONGO_INITDB_ROOT_PASSWORD: prisma
    volumes:
      - ./mongo/data:/data/db
  volumes:
    mongo:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM