docker工人可以使用主机文件系统而不是图像?

阅读这个问题 ,我明白容器使用一个基本的映像(如Ubuntu)作为根文件系统。 现在我的问题是如果有必要下载一个基本的图像,如果我有完全相同的操作系统(如Ubuntu 14.04)。

这个基础图像是多余的吗?

首先,如果您的服务在该容器中运行时是静态链接的(如Go应用程序 ),则可以在“scratch”容器中复制该应用程序 (这是一个空的 容器 !完全没有操作系统)

其次,容器中的应用程序只能对主机内核进行系统调用 ,不会看到主机文件系统(除了由卷装入的内容之外)

基础映像可以保证运行时的可重现性 :即使您更新/升级了基本操作系统,也可以针对完全相同的操作系统(基本映像)执行任何用户调用(dynamic链接)。

最后,一个基本映像“ubuntu”与实际的Ubuntu操作系统并不相同:它是一个紧凑的子集(一个根文件系统,没有graphics化的X-11部分),docker和UnionFS一起使用它作为容器内的磁盘块层。