【发布时间】:2022-01-01 23:12:17
【问题描述】:
我创建了以下docker-compose.yml 文件
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
然后开始
sudo docker-compose up
然后连接到 mongo 并创建了一些文档。然后我重新启动了我的撰写。令人惊讶的是,数据仍然存在。据我所知,如果没有配置卷,Docker 就会忘记数据。这有改变吗?
在这种情况下我的数据保存在哪里?
【问题讨论】:
-
您的数据保留在容器内。
docker-compose stop/start不会删除创建的容器,这就是数据仍然存在的原因。如果你docker-compose down(停止并删除)然后docker-compose up(创建并运行)数据将会丢失。 -
如果您使用了 docker compose volumes 选项,则数据库数据可以保存在 docker 容器之外,而是保存在 docker 主机上。见stackoverflow.com/questions/68517126/…
标签: mongodb docker docker-compose