美文网首页
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