当使用 docker commit
提交正在运行的容器时,这是在创建文件系统的一致快照吗?
我正在考虑使用这种方法来备份容器。你只需要docker commit <container> <container>:<date>
并将其推送到本地注册表。
备份将是增量的,因为提交只会创建一个新层。
大量的层也会严重损害容器的 io 性能吗?有没有办法在以后删除中间层?
编辑
我所说的一致是指每一个旨在在断电后幸存下来的应用程序都应该能够从这些快照中恢复。基本上这意味着在启动快照后没有文件必须更改。
同时我发现 docker 现在支持多个存储驱动程序(aufs、devicemapper、btrfs)。不幸的是,几乎没有任何文档说明它们之间的差异以及它们支持的选项。
最佳答案
我猜一致性是你定义的。
关于扁平化和堆叠太多 AUFS 层的缺点,请参见: https://github.com/dotcloud/docker/issues/332
docker flatten链接在那里。
关于backup - docker commit 运行容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23989845/