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

问题描述:

阅读this question,我了解容器使用基本映像(如Ubuntu)作为根文件系统。现在我的问题是如果有必要下载一个基础镜像,如果我有完全相同的操作系统(如Ubuntu 14.04)。docker可以使用主机文件系统而不是图像吗?

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

首先,如果在容器的服务运行是静态链接(如Go application),你可以COPY that app in a "scratch" container(这是一个empty one!无操作系统的话)

其次,在一个容器中的应用程序只能打system calls到主机内核,它不会看到主机的文件系统(旁边是什么通过安装卷)

基础图像是有保证运行时会重复性:任何用户调用(动态链接)会即使你已经更新/升级了你的操作系统,也可以对照完全相同的操作系统(基本映像)基础操作系统最后,一个基础镜像“ubuntu”与实际的Ubuntu OS不一样:它是一个紧凑的子集(一个根文件系统,没有图形化的X-11部分),它由docker和UnionFS使用,作为容器内部的磁盘块之一。