Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何在kubernetes pod内共享dotnet运行时_.net_Docker_Asp.net Core_Kubernetes - Fatal编程技术网

.net 如何在kubernetes pod内共享dotnet运行时

.net 如何在kubernetes pod内共享dotnet运行时,.net,docker,asp.net-core,kubernetes,.net,Docker,Asp.net Core,Kubernetes,因此,这个标题是不言自明的。假设我有三个容器化的dotnet应用程序,我不想在每个容器中都有dotnet运行时,也不想在主机上安装dotnet运行时那么,如何在单个pod中的容器之间共享dotnet运行时? 抱歉,如果是重复或愚蠢的问题,我是docker和kubernetes的新手。简而言之,您不必担心在每个容器中“复制”dotnet运行时。您关心的问题是集装箱化的一个关键特征,但需要进行一些研究才能理解 下面简要介绍Docker如何构建和存储图像,以及容器如何使用这些图像 每个图像由几个“层

因此,这个标题是不言自明的。假设我有三个容器化的dotnet应用程序,我不想在每个容器中都有dotnet运行时,也不想在主机上安装dotnet运行时那么,如何在单个pod中的容器之间共享dotnet运行时?


抱歉,如果是重复或愚蠢的问题,我是docker和kubernetes的新手。

简而言之,您不必担心在每个容器中“复制”dotnet运行时。您关心的问题是集装箱化的一个关键特征,但需要进行一些研究才能理解

下面简要介绍Docker如何构建和存储图像,以及容器如何使用这些图像

  • 每个图像由几个“层”组成
  • 每一层都覆盖在前一层之上,只包含与前一层的差异
  • 最上面是一个薄的、可写的容器层
由于每个容器都有自己的可写容器层,并且所有运行时更改都存储在该容器层中,因此多个容器可以共享对相同基础映像的访问,但也有自己的数据状态。使用您的示例,如果在同一Kubernetes节点上运行多个dotnet容器,则它们将共享任何相同的只读图像层,但每个容器将具有单独的读/写容器层


本参考资料更详细地讨论了该主题:

简而言之,您不必担心在每个容器中“复制”dotnet运行时。您关心的问题是集装箱化的一个关键特征,但需要进行一些研究才能理解

下面简要介绍Docker如何构建和存储图像,以及容器如何使用这些图像

  • 每个图像由几个“层”组成
  • 每一层都覆盖在前一层之上,只包含与前一层的差异
  • 最上面是一个薄的、可写的容器层
由于每个容器都有自己的可写容器层,并且所有运行时更改都存储在该容器层中,因此多个容器可以共享对相同基础映像的访问,但也有自己的数据状态。使用您的示例,如果在同一Kubernetes节点上运行多个dotnet容器,则它们将共享任何相同的只读图像层,但每个容器将具有单独的读/写容器层


本参考资料更详细地讨论了该主题:

使用容器的主要原因是可移植性和一致性。这意味着每个容器都应该包含所有依赖项,以便您可以将容器带到任何地方并运行它(源于“it works on my machine!”问题)。有鉴于此,您肯定希望每个容器中都有dotnet运行时。否则,您实际上依赖于其他应用程序来运行,而不是破坏您的环境,这有损于使用容器的初衷。使用容器的主要原因是可移植性和一致性。这意味着每个容器都应该包含所有依赖项,以便您可以将容器带到任何地方并运行它(源于“it works on my machine!”问题)。有鉴于此,您肯定希望每个容器中都有dotnet运行时。否则,你真的需要依赖于其他应用程序来运行,而不是破坏你的环境,这有点违背了使用容器的初衷。我想我明白了。所以我可以有三个带有dotnet运行时只读映像的容器,docker会明白这个映像可以被共享?没错!所有图像都是不可变且只读的。Docker知道哪些层是相同的,可以共享。因此,只要您使用相同的基本映像(Dockerfile中的
FROM…
语句),您的dotnet容器的dotnet运行时就会被共享。所以我可以有三个带有dotnet运行时只读映像的容器,docker会明白这个映像可以被共享?没错!所有图像都是不可变且只读的。Docker知道哪些层是相同的,可以共享。因此,只要您使用相同的基本映像(Dockerfile中的
FROM…
语句),您的dotnet容器的dotnet运行时将被共享。