上一节我们谈到了容器的组件,镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。
这里我们先从base镜像开始一步步了解镜像的内部构造,镜像的分层,镜像的分发和管理。
我们以 CentOS 为例考察 base 镜像包含哪些内容。
下载镜像:
root@ubuntu:~# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
aeb7866da422: Pull complete
Digest: sha256:67dad89757a55bfdfabec8abd0e22f8c7c12a1856514726470228063ed86593b
Status: Downloaded newer image for centos:latest
查看镜像:
root@ubuntu:~# docker images centos
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 75835a67d134 13 days ago 200MB
这里为什么镜像大小只有200M呢,这是因为Linux 操作系统由内核空间和用户空间组成。
内核空间是 kernel,Linux 刚启动时会加载 bootfs 文件系统,之后 bootfs 会被卸载掉。
用户空间的文件系统是 rootfs,包含我们熟悉的 /dev, /proc, /bin 等目录。
对于 base 镜像来说,底层直接用 Host 的 kernel,自己只需要提供 rootfs 就行了,所以大小只有200M。
这就是base镜像的内容。