容器原理基础

为什么选择容器

  • 节省资源,轻量级,启动速度快
  • 隔离性强


    image.png

容器基础

  • Container runtime:能够基于在线获取的镜像来创建和运行容器的程序,docker是最熟悉的container runtime
  • docker架构
    image.png

    Image跟container的关系好比面向对象编程中的类和实例,image是静态定义,container是运行实例

  • 容器image
    Docker image是一个层级文件系统(unionfs)
    一个典型的Linux文件系统由bootfs以及rootfs构成,其中bootfs用于加载Linux kernel,而rootfs包含Linux 系统中的/dev,/proc,/bin,/etc 等标准目录和文件
    传统的 Linux 加载 bootfs 时会先将 rootfs 设为 read-only,然后在系统自检之后将 rootfs 从 read-only 改为 read-write,然后我们就可以在 rootfs 上进行读写操作
    但 Docker 在 bootfs 自检完毕之后并不会把 rootfs 的 read-only 改为 read-write,而是利用union mount技术将 image 中的其他的 layer 加载到之前的 read-only 的 rootfs 层之上,每一层 layer 都是 rootfs 的结构,并且是read-only 的
    所以,我们是无法修改一个已有镜像里面的 layer 的!只有当我们创建一个容器,也就是将 Docker 镜像进行实例化,系统会分配一层空的 read-write 的 rootfs ,用于保存我们做的修改


    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容