美文网首页
Docker[note_06]使用dockerfile制作镜像

Docker[note_06]使用dockerfile制作镜像

作者: 墨流引 | 来源:发表于2020-03-21 11:37 被阅读0次

一、docker镜像原理

Linux文件系统由bootfs和rootfs两部分组成

  • bootfs(boot file system):包含 boot loader(引导加载程序)和 kernel(内核)。用户不会修改这个文件系统。实际上,在启动(boot)过程完成后,整个内核都会被加载进内存,此时 bootfs 会被卸载掉从而释放出所占用的内存。同时也可以看出,对于同样内核版本的不同的 Linux 发行版的 bootfs 都是一致的。
  • rootfs(root file system):包含典型的目录结构,包括 /dev, /proc, /bin, /etc, /lib, /usr, and /tmp 等再加上要运行用户应用所需要的所有配置文件,二进制文件和库文件。这个文件系统在不同的Linux 发行版中是不同的。而且用户可以对这个文件进行修改。

Docker镜像由特殊的文件系统叠加而成

  • 最底层是bootfs,并且使用宿主机的bootfs
  • 第二层是rootfs文件系统,又称基础镜像
  • 然后再往上可以叠加其他的镜像文件
docker镜像原理

二、dockerfile

容器转镜像

  • 容器转镜像
docker commit <容器ID> <新镜像名:版本号> 

容器转成镜像后,通过数据卷,挂载的文件不会存在。

  • 镜像转压缩文件
docker save -o <压缩文件名称> <镜像名称:版本号>
  • 压缩文件还原镜像
docker load -i <压缩文件名称>

DockerFile

  • docker是一个文本文件
  • 包含了一条条指令
  • 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
# centos7 dockerfile
FROM scratch
ADD centos-7-docker.tar.xz /

LABEL org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20181205"

CMD ["/bin/bash"]

http://www.dockone.io/article/2338

相关文章

网友评论

      本文标题:Docker[note_06]使用dockerfile制作镜像

      本文链接:https://www.haomeiwen.com/subject/vaneyhtx.html