问题描述
我有一个docker-compose文件,它将在同一网络“ mynet”中启动mongo和mongo-express容器。 我通过以下方式创建了网络:
docker network create mynet
我已经通过docker命令从外部创建了一个名为“ demo-vol”的卷。
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概念的初学者。
谢谢。
解决方法
您可以使用本地驱动程序进行音量
volumes:
demo-vol:
driver: local
并尝试删除斜杠
volumes:
- demo-vol:/data/db