2 Docker 镜像基础
Docker 镜像可以从docker.io 下载,也可以自己通过Dockerfile来构建镜像,我有时从国外下载镜像时,网速不行,我就改成国内的镜像,修改如下:
# vim /etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"] }
# systemctl restart docker
或改成(需要到daocloud.io网站注册账户才行):
{
"registry-mirrors":["http://5dddd846.m.daocloud.io"]
}
Linux 操作系统由内核空间和用户空间组成。如下图所示:
rootfs----内核空间是 kernel,Linux 刚启动时会加载 bootfs 文件系统,之后 bootfs 会被卸载掉。
用户空间的文件系统是 rootfs,包含我们熟悉的 /dev, /proc, /bin 等目录。
对于 容器的 镜像来说,底层直接用 Host 的 kernel,自己只需要提供 rootfs 就行了,容器是共享主机的kernel。
而对于一个精简的 OS,rootfs 可以很小,只需要包括最基本的命令、工具和程序库就可以了。相比其他 Linux 发行版,CentOS 的 rootfs 已经算臃肿的了,alpine 还不到 10MB。
我们平时安装的 CentOS 除了 rootfs 还会选装很多软件、服务、图形桌面等,需要好几个 GB 就不足为奇了。
例如 CentOS 7 使用 3.x.x 的 kernel,如果 Docker Host 是 Ubuntu 16.04,那么在 CentOS 容器中使用的实际是是 Host 4.x.x 的 kernel。