我在我的GUEST OS上运行了一个Docker守护进程,它是CentOS.我想以一种孤立的方式安装软件服务,我不需要在我的Docker容器中使用另一个操作系统映像.
我想拥有一个Docker容器,只包含我要安装的软件应用程序的附加二进制文件和库.
我可以使用Docker中的"whiteglove/blank"基本图像吗?我想要一个非常精简的容器,它作为我的GUEST操作系统提供的起点.那可能吗 ?
Roh*_*ngh 30
您要求的东西不可能与Docker一起开箱即用.每个Docker镜像都有自己的根文件系统,需要安装某种操作系统.
你的选择是:
使用最小的基本映像,例如BusyBox映像.这将为您提供运行容器所需的绝对最小值.
使用CentOS基本映像,在这种情况下,您的容器将运行相同或非常类似的操作系统.
Docker镜像的原因是因为它们是可移植的.无论操作系统如何,任何Docker镜像都可以在Docker运行的任何地方运行.这意味着Docker镜像必须包含完整的根文件系统和操作系统安装.
如果您需要来自主机操作系统的东西,您可以使用Docker卷共享一个目录.但是,这通常意味着用于安装数据目录,并且仍然需要具有OS的Docker镜像.
也就是说,如果你有一个完全没有依赖关系的静态链接二进制文件,那么创建一个非常小的图像变得很容易.这被称为"微容器",尤其是Go非常适合生产这些产品.以下是关于微容器以及如何生产它们的进一步阅读.
如果您想要的只是容器的资源管理部分正在使用lxc-execute,您可以查看另一个选项,如本答案中所述.但是你也失去了所有其他漂亮的Docker功能.不幸的是,你要做的不仅仅是Docker的构建.
blu*_*hts 14
据我了解 docker,当您使用base image 时,您实际上并没有安装额外的操作系统。
它只是一种带有预装程序的目录结构,或者我们可以说是实际基本映像操作系统的文件系统。
在大多数情况下[单击此链接查看例外情况],当在 mac 和 windows 上使用时,docker 本身 [docker 引擎] 在 linux VM 上运行。
如果您对虚拟化感到困惑,那么 Docker Container 中并没有虚拟化。容器在主机操作系统内核之上的用户空间中运行。因此,容器和主机操作系统将共享相同的内核。
所以,总结一下:
结论:当你在 docker 中安装基础镜像时,容器内没有安装额外的操作系统,而只是创建了包含最少程序和工具的文件系统副本。
来自Docker的最佳实践:
尽可能使用当前的官方存储库作为图像的基础.我们建议使用Debian映像,因为它受到非常严格的控制并且保持极小(目前低于100 mb),同时仍然是完整的分发版.
您所要求的完全违背使用Docker容器的想法.您不希望 GUEST OS具有任何可靠性.如果你做Docker不会是便携式的.
创建容器时,您希望它在运行 Docker的任何计算机上运行.无论是CentoOS,Ubuntu,Mac还是Microsoft Azure :)
理想情况下,基本容器操作系统不必对您的主机操作系统执行任何操作.
| 归档时间: |
|
| 查看次数: |
11549 次 |
| 最近记录: |