繁体   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