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
命令,不再需要这个机制。