2014-12-04 55 views
5

正如标题所说,安全意味着......正确的方式?在Docker中提交正在运行的容器是否“安全”?

安全=一致,没有数据丢失,专业,合法的方式。

希望与专业码头工具用户分享一些经验。

Q.提交是运行Docker容器安全(与快速变化的实时的东西,数据库的东西之外,你自己的评论表示赞赏。)

是或否的答案是接受了评论。谢谢。

+1

也许这个答案我到以前类似的问题,可以帮助做...:http://stackoverflow.com/questions/24071148/is-it-safe-to-export-tarball-of-运行docker-container – mbarthelemy 2014-12-04 07:19:56

回答

4

所有的内存和硬盘存储保存在容器实例中。您应该只要不使用任何外部安装/泊坞窗卷和服务器(外部连接的数据库?)就不会因为停止/重新启动和合并泊坞窗而陷入困境。请继续阅读,以深入探讨此主题。

您可能最初想问自己的问题是,docker如何在运行时对其磁盘进行更改?什么真的很好看,是码头实际上如何设法实现这个工作。容器硬盘的原始状态是图像中的原始状态。它可以不是写入这张图片。与写入图像不同的是,与泊坞窗图像中的内容相比,差异是由容器内部状态的变化构成的。 Docker使用名为“Union Filesystem”的技术,在Docker镜像的初始状态之上创建一个diff层。

此“diff”(在下图中以可写容器引用)存储在内存中,并在删除容器时消失。当您使用docker commit时,保留在容器临时“状态”中的可写容器存储在新映像中,但是:我不推荐这样做。您的新码头图像的状态未在码头文件中显示,并且无法从重建中轻松重新生成。制作一个新的dockerfile应该不难。所以这对我来说是个人的方式。

当您的码头工作于装入的卷,外部服务器/数据库时,您可能需要确保不会出现同步并暂时停止码头容器内的服务。当您使用dockerfile时,您可以在容器中启动引导程序shell脚本来启动连接,执行检查并初始化运行过程以持久设置您的应用程序。再次,运行一个承诺的容器使得难以做到这样的事情。

Union Filesystem

+0

您确定Docker将内存储存在容器内吗? – 2015-02-20 12:38:33

+0

在运行时,将内存分配给容器内的进程,就像停止的容器一样,内存不再保留在容器内部运行的进程中,因为它们停止了,并且我假定它必须保存到磁盘以便容器可重新启动。 – RoyB 2015-02-23 20:57:14

+0

我会很感激这种行为的一些证据链接,因为在我的设置中'nginx'进程未能保存在保存的容器中。 – 2015-02-24 10:12:00

相关问题