是否所有码头图像都具有最小的操作系统?

我正在努力学习Docker和那个提到的在线资料。我开始知道,我们可以拉出正式的图像中心,并运行一个容器。是否所有码头图像都具有最小的操作系统

回购可在https://hub.docker.com/,屏幕截图的一部分:

在此图中,我们可以看到Ubuntu的,httpd的,MySQL的(等)的官方图片。

我的问题是:

做所有这些图像具有“最小OS”运行它们。例如,如果我们考虑httpd图像,它是否具有运行所需的操作系统?

回答:

大多数图像都是基于一个发行版,因为您可以在它们的Docker文件中看到它。除了分配图像本身。它们具有不同的基本图像,称为scratch。

您可以查看他们是基于当您访问的DockerHub项目的网页上,图像例如https://hub.docker.com/_/httpd/

他们Dockerfiles被引用,您可以通过点击它们,例如审查这些第一个标签“2.2”是指this file。 Dockerfile中的第一行是FROM debian:jessie,并显示它基于Debian镜像。

它被广泛用于分隔标签,其中后缀为-alpine,用于指示使用alpine linux,这是一个比Debian图像小得多的基本图像。这导致httpd映像的图像更小,因为基本图像要小得多。

回答:

整个想法是,整个图像完全独立运行在硬件/虚拟化层。因此,(专业:)也不能被其他任何东西影响,这是图像的一部分。

每张图片都包含一个完整的操作系统。特殊的码头使操作系统的几个兆字节来:例如linux Alpine这是一个8兆字节的操作系统!

但是更大的操作系统,比如ubuntu/windows,可能是几千兆字节。两者都有它们的优点,因为docker会将图像分层切分,所以当您使用两次基本图像(FROM命令,请参阅N20 Answers)时,您将只下载一次该图层。

较小的操作系统只需要下载几兆的专业版。但对于你想使用的每个(linux)库,你都必须下载&包括你自己。这个自定义图层然后只用于您自己的图像,因此不会在其他图像中重新使用,从而创建客户额外的下载层&兆字节人们将不得不下载以运行您的图像。

如果你想从任何图像您可以开始你的dockerfile:

FROM scratch 

但是,这不建议,除非你真的知道你正在做的和/或你周围hobbying。

以上是 是否所有码头图像都具有最小的操作系统? 的全部内容, 来源链接: utcz.com/qa/264866.html

回到顶部