gpt4 book ai didi

docker - 在docker中提交正在运行的容器是 "safe"吗?

转载 作者:行者123 更新时间:2023-12-02 11:44:56 25 4
gpt4 key购买 nike

正如标题所说,安全意味着......正确的方法?

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

希望与专业的docker用户分享一些经验。

问。 Commit 对于运行 docker 容器来说是安全的(除了快速变化的实时内容和数据库内容之外,欢迎您自己的评论。)

接受"is"或“否”的回答并发表评论。谢谢。

最佳答案

所有内存和硬盘存储都保存在容器实例内。只要您不使用任何外部挂载/docker 卷和服务器(外部连接的数据库?),您就应该永远不会因停止/重新启动和提交 docker 而遇到麻烦。请继续阅读以更深入地了解该主题。

您最初可能想问自己的一个问题是,docker 如何存储在运行时对其磁盘所做的更改?真正令人高兴的是 docker 是如何实现这一点的。容器硬盘的原始状态是从镜像中获取的。它不能写入该图像。不是写入镜像,而是通过容器内部状态与 docker 镜像中的变化进行比较来进行比较。Docker 使用一种名为“Union Filesystem”的技术,该技术在 Docker 镜像的初始状态之上创建一个差异层。

此“差异”(在下图中称为可写容器)存储在内存中,并在您删除容器时消失。当您使用 docker commit 时,保留在容器临时“状态”中的可写容器将存储在新镜像中,但是:我不建议这样做。新 docker 镜像的状态不会在 dockerfile 中表示,并且无法轻松地从重建中重新生成。制作一个新的 dockerfile 应该不难。所以这对我个人来说始终是要走的路。

当您的 docker 使用已安装的卷、外部服务器/数据库时,您可能希望确保不会失去同步并暂时停止 docker 容器内的服务。当您使用 dockerfile 时,您可以在容器内启动引导 shell 脚本来启动连接、执行检查并初始化正在运行的进程,以持久设置您的应用程序。同样,运行已提交的容器会使执行此类操作变得更加困难。

Union Filesystem

关于docker - 在docker中提交正在运行的容器是 "safe"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27288070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com