当前位置: 首页 > 面试题库 >

应该使用哪个Docker基本映像在没有任何其他OS的情况下在容器中安装Apps?

阎知
2023-03-14
问题内容

我在我的GUEST操作系统CentOS上运行Docker守护程序。我想以一种隔离的方式在其上安装软件服务,并且在Docker容器内不需要其他OS映像。

我想要一个Docker容器,其中仅包含我将要安装的软件应用程序的其他二进制文件和库。

我可以使用Docker中的“ whiteglove / blank”基础映像吗?我想要一个非常精简的容器,以此作为GUEST OS必须提供的起点。那可能吗


问题答案:

您想要的是使用Docker不可能即用的。每个Docker映像都有其自己的根文件系统,该根文件系统需要安装某种操作系统。

您的选择是:

  1. 使用最小的基本映像 ,例如BusyBox映像。这将为您提供使容器运行所需的绝对最小值。

  2. 使用 CentOS基本映像,在这种情况下,您的容器将运行相同或非常相似的OS。

Docker映像之所以这样,是因为它们具有可移植性。任何Docker映像都旨在在Docker运行的任何位置运行,而与操作系统无关。这意味着Docker映像必须包含整个根文件系统和OS安装。

如果您需要主机操作系统提供的服务,可以使用Docker卷共享目录。但是,这通常意味着要用于挂载数据目录,并且仍然需要具有操作系统的Docker映像。

就是说,如果您有一个绝对没有依赖项的静态链接二进制文件,那么创建一个非常小的图像将变得很容易。这就是所谓的“微容器”,特别是Go非常适合生产这些容器。这是有关微容器及其生产方法的进一步阅读。

另一种选择,你可以看看,如果你想要的是容器的资源管理部被使用lxc-execute,因为在这个答案描述。但是您也会失去所有其他不错的Docker功能。不幸的是,您尝试做的不是构建Docker的目的。



 类似资料:
  • 问题内容: 我想在我的(Python)代码中使用Django模板引擎,但是我没有构建基于Django的网站。如何在没有settings.py文件(和其他文件)且无需设置DJANGO_SETTINGS_MODULE环境变量的情况下使用它? 如果我运行以下代码: 我得到: 问题答案: 解决方案很简单。它实际上有据可查,但不太容易找到。(我不得不仔细研究- 当我尝试了几种其他的Google搜索时,它并没

  • 编辑(2/19/21):自从几年前我提出这个原始问题以来,已经过去了很多时间,从那时起我看到了一系列的活动。我重新选择了一个答案,我认为它与解决这个问题的最本地化和最安全的选项一致(通常与docker compose相关)。虽然docker引入了命令,但这通常是一个危险的操作,我会谨慎使用,因为您可能会无意中影响机器上的其他应用程序或设置 我在使用Docker 1.9删除Docker卷时遇到问题。

  • 我已经按照这些教程为我的Spring Boot应用程序构建Docker映像,该应用程序使用Maven作为构建工具。我正在Windows10机器上使用boot2docker VM,将我的项目从Bitbucker存储库克隆到VM。 > 使用用于DockerFile的Spotify maven插件。尝试运行./mvnw来构建JAR和Docker映像。但是,我没有在boot2docker中安装Java。因

  • 我将guava jar文件添加到类路径中,但我的IDE(eclipse)说: Nullable无法解析为类型 但如果我ctrl+单击Nullable,我会看到蓝色下划线,然后看到下划线:

  • 有没有一种方法可以下载Docker映像/容器,例如,使用Firefox,而不使用内置的。 我被公司防火墙和代理屏蔽了,我无法通过它得到一个洞。 我的问题是我不能使用Docker获取图像,即Docker保存/拉取和其他Docker提供的功能,因为它被防火墙阻止了。

  • 例如,我在本地有此图像https://github.com/topflight-technology/docker-images/tree/master/go-testing.然后系统丢失了所有关于它的信息。那么我们如何重新创建图像docker文件呢?或者在列表中获取安装了哪些工具的列表。 所以我需要调查docker集装箱或strait forward图像?