13

使用 提交正在运行的容器时docker commit,这是否会创建文件系统的一致快照?

我正在考虑用这种方法来备份容器。您只需要将docker commit <container> <container>:<date>其推送到本地注册表即可。

备份将是增量的,因为提交只会创建一个新层。

大量的层也会严重损害容器的 io 性能吗?有没有办法在以后删除中间层?

编辑

所谓一致,我的意思是每个旨在在断电后幸存下来的应用程序都应该能够从这些快照中恢复。基本上这意味着在启动快照后没有文件必须更改。

同时我发现docker现在支持多种存储驱动(aufs、devicemapper、btrfs)。不幸的是,几乎没有任何关于它们之间的差异以及它们支持的选项的文档。

4

2 回答 2

1

我猜一致性是你定义的。

关于扁平化和堆叠太多 AUFS 层的缺点,请参见: https ://github.com/dotcloud/docker/issues/332

docker flatten链接在那里。

于 2014-06-14T23:16:31.980 回答
1

我也有类似的情况。我正在考虑不使用专用的数据卷容器,而是定期提交某种增量备份。除了增量备份之外,最大的好处是团队开发方法。作为新手,您可以简单地docker pull使用已经包含运行、调试和开发所需的所有数据的数据库映像。

所以我现在要做的是在提交之前暂停:

docker pause happy_feynman; docker commit happy_feynman odev:`date +%s`

据我所知,我现在没有任何问题。但这是一台正在开发的机器,所以我没有重负载服务器的经验。

于 2015-03-25T13:11:41.930 回答