[英]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.