为什么docker集装箱或kubernetes-吊舱被认为是一次性的?

我读过许多书籍和文献[1] [2],认为docker集装箱或吊舱被认为是一次性的,寿命短。 为什么他们认为这是短暂的? 在这种情况下,如何在生产中运行一个集装箱化的应用?

另外,一次性容器和不可变容器这两个术语是不是一样?

[1] https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/
[2] https://developers.redhat.com/blog/2016/02/24/10-things-to-avoid-in-docker-containers/

此外,一次性容器和不变容器这两个术语是相同的吗?

不可变的手段一旦创build,就不能改变。 在你的问题中,一次性的,意味着它可以被销毁,取而代之的是一点小小的后果。

这些东西是不一样的,但它们在一个典型的集装箱化应用程序中一起运行。 你将运行一个不可变的容器,当你想改变容器的行为时,你可以用一个新的容器replace它,而不是试图改变现有的容器。

这与虚拟机不同,如果你想改变你的应用程序的行为,你将部署代码更新和重新加载服务或类似的东西。

为什么他们认为这是短暂的?

容器是一个过程。 一个过程是短暂的。 容器是短暂的。 容器能够分开持久化数据 。

如何在生产中运行一个集装箱化的应用程序

如果你在生产环境中使用容器的问题可以改写为“如何在没有状态的情况下运行一个容器化的应用程序”,那么我首先要说的不是所有的应用程序都是有状态的。 例如,一个基本的Web服务器,或许多精心devise的微服务。

对于有状态的应用程序来说,没有什么能阻止你使用通用数据库来支持你的容器化应用程序。 您也可以使用卷,如上所述。 您可以将两者结合起来,并使用数据库容器下的卷来运行一个集装箱化的数据库。 国家并不是一个真正的问题。