阅读this question,我理解容器使用基本图像(如ubuntu)作为根文件系统。现在我的问题是,如果我有完全相同的操作系统(如ubuntu 14.04),是否有必要下载基本映像。
这个基本图像是多余的吗?
答案 0 :(得分:1)
首先,如果您在该容器中运行的服务是静态链接的(例如Go application),那么您可以COPY that app in a "scratch" container(这是一个empty one!根本没有操作系统)
其次,容器中的应用只能向主机内核发送system calls,它不会看到主机文件系统(除了卷安装的内容之外)
基本映像用于保证运行时可重现:任何用户调用(动态链接)都将针对完全相同的操作系统(基本映像)完成,即使您已更新/升级了您的基本操作系统。
最后,一个基本形象" ubuntu"与实际的Ubuntu操作系统不同:它是一个紧凑的子集(根文件系统,没有图形X-11部分),它由docker用作UnionFS,作为容器内的磁盘块之一。