docker仅数据容器的持久性

时间:2015-05-07 19:01:10

标签: docker

我对仅限数据的docker容器有点困惑。我认为将目录直接挂载到source-os是一种不好的做法:https://groups.google.com/forum/#!msg/docker-user/EUndR1W5EBo/4hmJau8WyjAJ

我了解了如何创建仅限数据的容器:http://container42.com/2014/11/18/data-only-container-madness/

我看到类似于我的问题:How to deal with persistent storage (e.g. databases) in docker

但是如果我有一个灯泡服务器设置怎么办...我有一些很好的数据容器设置,而不是直接链接它们'到我的source-os并暂时备份..

比有人过来,并重新启动我的服务器..如何重新设置我的docker(仅限数据)-containers,所以我不会丢失任何数据?

4 个答案:

答案 0 :(得分:3)

实际上,即使是shykes在你提供的链接中认为它被认为是“黑客”,也请记下日期。自那篇关于卷的帖子以来,已经过去几年的Docker年,并且在主机上安装卷不再被认为是不好的做法。事实上,here is a link对于同样的shykes说他“肯定在生产中大规模使用它们好几年而没有任何问题”。将主机操作系统目录挂载为docker卷,不必担心。这意味着您的数据会在Docker重启/部署/等等中持续存在。它就在主机的磁盘上,当你的容器消失时它不会去任何地方。

我一直在使用docker卷来挂载主机操作系统目录以进行数据存储(数据库持久存储,配置数据等),只要我一直在使用Docker,它就完美无缺。此外,看来shykes不再认为这是不好的做法。

答案 1 :(得分:0)

Docker容器将保留在磁盘上,直到用docker rm显式删除它们。如果服务器重新启动,则可能需要重新启动服务容器,但数据容器将继续存在,并且其卷可供其他容器使用。

答案 2 :(得分:0)

docker rm不会删除实际数据(存在于/var/lib/docker/vfs/dir中)

只有docker rm -v才能清除数据。

唯一的问题是,在docker rm之后,新的泊坞窗运行会在/var/lib/docker/vfs/dir中重新创建一个空卷。
理论上,您可以使用symlink将新卷文件夹重定向到旧卷文件夹,但是假设您在docker rm之前注意哪些卷与哪个数据容器相关联。

答案 3 :(得分:0)

值得注意的是,使用“仅数据容器”创建的卷基本上仍然是主机操作系统上的目录,只是位于不同的位置(/var/lib/docker/...)。一个好处是您可以使用友好标识符标记卷,因此您不必对目录路径进行硬编码。

缺点是管理工作如备份特定数据卷现在有点麻烦,因为您必须手动检查元数据以查找目录位置。此外,如果您不小心擦除了docker安装或所有docker容器,您将丢失数据量。