Docker 镜像有没有内核

  从镜像大小上面来说,一个比较小的镜像只有十几MB,而内核文件需要一百多兆,因此镜像里面是没有内核的,镜像在被启动为容器后将直接使用宿主机的内核,而镜像里面是没有内核,而镜像本身只提供相应的rootfs,即系统正常运行所必须的用户空间的文件系统,比如/dev/,/proc/,/bin/,/etc/等目录,所以容当中基本没有/boot 目录的,而/boot 当中保存的就是与内核相关的文件和目录

为什么没有内核

由于容器启动和运行过程中是直接使用了宿主机的内核,所以没有直接调用过物理硬件,所以也不会涉及到硬件驱动,因此也用不上内核和驱动,另外有内核的那时虚拟机

DockerFile 是什么

DockerFile 可以说是一种可以被 Docker 程序解释的脚本,DockerFile 是由一条条的命令组成的,每条命令对于 Linux 下面的命令,Docker 程序将这些 DockerFile 指令再翻译成真正的 Linux 命令,其有自己的书写方式和支持的命令,Docker 程序读取 DockerFile 并根据指令生成 Docker 镜像,相比手动制作镜像的方式,DockerFile 更能直观的展示镜像是怎么产生的,有了写好的各种各样 DockerFile 文件,当后期某个镜像有额外的需求时,只要在之前的 DockerFile 添加或者修改相应的操作即可重新生成新的 Docker 镜像,避免了重复手动制作镜像的麻烦,集体文档如下:

​Dockerfile reference | Docker Documentation​

ADD

COPY

ENV

EXPOSE

FROM

LABEL

STOPSIGNAL

USER

VOLUME

WORKDIR

RUN