【发布时间】:2015-10-28 21:57:00
【问题描述】:
看完https://docs.docker.com/introduction/understanding-docker/后,我仍然很难理解docker容器的轻量级。
查看一些公共图像,其中大多数基于以下“基础”图像之一,例如FROM debian:jessie 或FROM debian:wheezy,还有 ubuntu 的变体,我猜 fedora 和 centos 也有(还有一个“scratch”是另一个话题)。
所以,考虑到这一点,我理解,每个 docker 容器都运行基本操作系统(在图像中提到),那么它是如何工作的?轻量级从何而来?你能在 fedora 上运行基于 debian:jessie 的镜像,在 debian 上运行基于 centos 的镜像吗?
“从头开始”呢?如果你的 Dockerfile 基于“scratch”,那么你没有在容器内运行操作系统,那么在这种情况下它是如何工作的呢?
宿主系统的Linux内核和运行在这个宿主系统上的docker容器是什么关系?
【问题讨论】:
-
“运行”?这是一个非常沉重的术语。如果您没有通过初始化系统,那么您并没有真正运行整个操作系统...
-
...或者,可以说,由于所有 docker 映像都使用您自己的内核,因此您从不运行除您自己的本地操作系统之外的任何操作系统。 :)
-
顺便说一句,一系列松散相关的问题并不是一个好的 StackOverflow 问题。当某些答案比其他答案更好地回答您的某些问题时,您(以及其他人如何)应该如何判断哪个答案是最好的/最规范的?这种情况是存在“过于宽泛”的密切原因的部分原因。
标签: linux docker virtualization dockerfile