Container内不需要OS,为何需要OS的基础镜像?

来源:互联网 发布:ifix组态软件价格 编辑:程序博客网 时间:2024/05/10 03:08

转载:http://dockerone.com/question/6


首先我来回答一下问题一,Container内需不需要OS?
Container不是一个VM技术,所以和OS没有关系。如果我没有理解错,这个Container应该指的是Docker Run出的运行环境,因为在里面我们可以运行一些命令,让使用者以为它就是一个完整的OS环境。这是不对的。其实Docker只是一个进程。当你使用docker exec登录进去的也只是一个Terminal的模拟环境。它不是真实的OS。正因为它不是OS,所以它是直接调用主机的Kernel的。而Container本身只是一个系统进程。

好了,我来回答第二个问题:为何需要OS的基础镜像?
首先,OS的问题上面已经解释过了,它不是一个OS,但为何需要OS的基础镜像?其实这里的基础镜像是一个包含rootfs的镜像。Kernel启动后是需要把启动文件解压到rootfs上的,然后kernel找到init文件启动就可以得到一个Linux环境了,Docker做的事情就是模拟这个过程,让kernel给出一个独立的隔离环境。

mkdir testfs
curl -sSL github.com/jpetazzo/docker-busybox/raw/buildroot-2014.02/rootfs.tar | tar -xC testfs
cd testfs

你可以看一下一个rootfs的解压后的目录就能大致了解我说的意思了。

0 0
原创粉丝点击