Docker的“仅数据容器”被closures

我似乎无法在任何地方find答案。 大量的教程指出,拥有一个只有数据的容器就是如何在docker中实现持久化数据。 但是我不明白的是,只要数据只存在于容器中,数据似乎只是持久的。 当它closures并重新启动时,数据就会消失。

考虑到没有系统会有100%的正常运行时间,我希望长期数据库的内容能够坚持超越物理系统重启等等。 我如何正确保存数据?

大量的教程指出,拥有一个只有数据的容器就是如何在docker中实现持久化数据。

请注意,最近的Docker版本不再是这种情况; 卷现在是“头等”公民,可以通过docker volume命令创build/删除/ docker volume 这意味着您可以运行以下命令来创build持久数据卷:

 $ docker volume create --name myvolume 

后来你可以像这样附加到它上面:

 $ docker run -v myvolume:/data ... 

但是我不明白的是,只要数据只存在于容器中,数据似乎只是持久的。

如果你在你的问题信息中包含你如何创build你的数据专用容器,这将有所帮助。 请注意,只有数据的容器不一定要“运行”才有用; 它只是存在。 所以,例如,我可以像这样创build一个只有数据的容器:

 $ docker run -v /data --name datacontainer busybox true 

这当然会运行/bin/true ,然后立即退出:

 $ docker ps -a 47568a43d386 busybox "true" 7 seconds ago Exited (0) 6 seconds ago datacontainer 

但即使容器已经退出,我可以使用新容器中的容量:

 $ docker run -it --volumes-from datacontainer busybox sh Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/tank-docker--vol 83844100 2398688 81445412 3% /data 

这个机制就是你在Docker1.1之前(1.9,也许是?)获得持久化卷的机制,但是由于docker volume命令,不再需要这个机制。