我在我的GUEST操作系统CentOS上运行Docker守护程序。我想以一种孤立的方式在其上安装软件服务,并且在我的Docker容器内不需要另一个OS映像。
我想要一个Docker容器,其中仅包含我要安装的软件应用程序的其他二进制文件和库。
我可以使用Docker中的“ whiteglove / blank”基础映像吗?我想要一个非常精简的容器,以此作为GUEST OS必须提供的起点。那可能吗 ?
您想要的是使用Docker不可能即用的。每个Docker映像都有其自己的根文件系统,该根文件系统需要安装某种操作系统。
您的选择是:
使用最小的基本映像,例如BusyBox映像。这将为您提供使容器运行所需的绝对最小值。
使用CentOS基本映像,在这种情况下,您的容器将运行相同或非常相似的OS。
Docker映像之所以这样,是因为它们具有可移植性。任何Docker映像都旨在在Docker运行的任何位置运行,而不管操作系统是什么。这意味着Docker映像必须包含整个根文件系统和OS安装。
如果您需要主机OS上的东西,该怎么办就是使用Docker卷共享目录。但是,这通常意味着要用于挂载数据目录,并且仍然需要具有OS的Docker映像。
就是说,如果您有一个绝对没有依赖项的静态链接二进制文件,则创建一个非常小的图像变得很容易。这就是所谓的“微容器”,特别是Go非常适合生产这些容器。这是有关微容器及其生产方法的进一步阅读。
如果您只想要容器的资源管理部分正在使用lxc-execute
,可以考虑使用另一种方法,如本答案所述。但是,您也会失去所有其他不错的Docker功能。不幸的是,您要尝试的并不是构建Docker的目的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句