泊坞窗数据专用容器的持久性如何

我对有数据的Docker容器有点困惑。 我读了这是一个不好的做法直接挂载目录到源-os: https : //groups.google.com/forum/#! msg/ docker -user/EUndR1W5EBo/ 4hmJau8WyjAJ

而我得到我如何制作数据专用容器: http : //container42.com/2014/11/18/data-only-container-madness/

我也看到了类似于我的类似问题: 如何处理docker中的永久存储(例如数据库)

但是,如果我有一个灯 – 服务器设置..我有一切很好的设置与数据容器,而不是直接链接到我的源OS,并做一个备份一段时间..

比别人来了,并重新启动我的服务器..我如何设置我的docker(数据专用)集装箱再次,所以我不会丢失任何数据?

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

事实上,即使是在你提供的链接上被认为是“黑客”的shykes,请注意date。 自该文章发表以来,已经有数十年的Docker年代已经过去,在主机上安装卷不再被认为是不好的做法。 实际上, 这里也有一个同样的骇人听闻的说法,说他已经“毫无疑问地将它们大规模地用于生产了好几年了”。 将主机操作系统目录挂载为泊坞窗,不用担心。 这意味着你的数据在docker重启/部署/任何情况下都会持续存在。 它就在主机的磁盘上,当你的容器消失时,它就不会去任何地方。

我一直在使用docker卷,只要我一直在使用Docker,就可以为主机操作系统目录装载数据存储(数据库持久存储,configuration数据等等),并且工作完美。 此外,看起来shykes不再认为这是不好的做法。

docker rm不会删除实际的数据(它位于/var/lib/docker/vfs/dir

只有docker rm -v也会清除数据。

唯一的问题是,在docker rm ,新的docker run会在/var/lib/docker/vfs/dir重新创build一个空的卷。
从理论上讲,你可以使用符号链接将新的卷文件夹redirect到旧的卷文件夹,但是假设你logging了哪些卷与docker rm之前的哪个数据容器相关联。

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

缺点是,像备份特定数据卷这样的pipe理工作现在有点麻烦了,因为你必须手动检查元数据来查找目录位置。 另外,如果您不小心擦除了Docker安装或所有Docker容器,则会丢失数据量。