docker volume:删除或停止然后重新启动容器时,数据丢失

时间:2019-03-11 10:19:50

标签: node.js mongodb docker docker-volume

我已经安装了2个容器:

  • Mongo:作为数据库->卷安装在指定路径上
  

docker run --hostname raw-data-mongo --name = raw-data-mongo
  --network = our-network -p 27017:27017 -v data / db / raw-data-db:/ data / db -d mongo

  • Nodejs:将一些数据保存到mongodb
  

docker run -d -p 80:3001 --name =原始数据容器   --network = our-network -v / data / db / raw-data-db:/ data / db raw-data-api

但是任何时候我保存数据(使用我的节点应用程序容器,连接到mongo容器)然后删除我的节点容器并重新启动时,我都无法检索保存的数据。

我应该如何安装独立于节点的卷,并且在可能的情况下独立于任何容器的卷?

我希望我可以删除并重新启动容器,但仍然能够检索我的数据

2 个答案:

答案 0 :(得分:0)

您可以运行使用-v来指定您的docker部署用来保存数据的卷。您应该记住两件事,一是您正在运行的docker应该公开-v并使用它来存储其数据(mongodb这样做,大多数项目也是如此),其二是持久性卷通过-v传递的路径应该存在,并且docker进程应该对此具有写权限。

希望这会有所帮助!

答案 1 :(得分:0)

请尝试以下操作

第1步:创建目录

$HOME/data/db/raw-data-db

第2步:然后分配音量

docker run --hostname raw-data-mongo --name=raw-data-mongo
--network=our-network -p 27017:27017 -v $HOME/data/db/raw-data-db:/data/db -d mongo

这样,您的数据将在mongodb中保留在该卷中。对于node.js,请使用其他卷。