我似乎无法在任何地方找到答案。大量教程声明拥有仅数据容器是如何在docker中实现持久数据的。然而,我不能理解的是,只要数据存储容器存在,数据似乎只是持久的。当它关闭并重新启动时,数据就会消失。
考虑到没有系统将有100%的正常运行时间,并且我希望长期数据库的内容在物理系统重启等之后仍然存在。如何正确保存数据?
答案 0 :(得分:2)
许多教程都声明拥有一个仅数据容器是如何在docker中实现持久数据的。
请注意,对于Docker的最新版本,现在不再是这种情况了;卷现在是"头等"公民,可以使用@[
@[
@733,
@"Oakleigh - Box Hill via Clayton & Monash University & Mt Waverley",
@"Oakleigh Railway Station/Johnson St",
@"2016-04-05T11:44:00Z"
],
@[
@631,
@"Southland - Waverley Gardens via Clayton & Monash University",
@"Southland Shopping Centre/Karen St",
@"2016-04-05T11:46:00Z"
],
@[
@703,
@"Middle Brighton - Blackburn via Bentleigh & Clayton & Monash University (SMARTBUS Service)",
@"Luntar Rd/Centre Rd",
@"2016-04-05T11:50:00Z"
]
];
命令创建/删除/等。这意味着您可以通过运行:
docker volume
以后你可以这样依附于它:
$ docker volume create --name myvolume
但我不明白,只要数据存储容器存在,数据似乎只是持久的。
如果您在问题中包含有关如何创建仅限数据的容器的信息,将会有所帮助。请注意,仅数据容器不必须"运行"有用;它必须存在。因此,例如,我可以像这样创建一个仅数据的容器:
$ docker run -v myvolume:/data ...
当然,这将运行$ 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中使用早于1.10(1.9,可能是?)的持久卷,但由于$ 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
命令不再需要这种机制。