zoukankan      html  css  js  c++  java
  • Docker中镜像与容器之间的区别


    容器与镜像图解

    什么是镜像?

      镜像就是一堆只读层的统一视角(并非是一个单独的文件,而是具有层级结构)。

         如图所示,我们可以看见多个只读层,重叠在一起。除了最下面的一层,其他层都会有一个指针指向下一层。并且能够在主机(运行Docker的机器)的文件系统访问到。统一文件系统(union file system)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。
     
    你可以在你的主机文件系统上找到有关这些层的文件。需要注意的是,在一个运行中的容器内部,这些层是不可见的。在我的主机上,我发现它们存在于/var/lib/docker目录下。 

    什么是容器?

      容器的定义和镜像的定义几乎一摸一样,也是一堆只读层的统一视角,唯一的区别在于容器最上面那一层是可读可写的。

     

    要点:容器 = 镜像 + 可读层。并且容器的定义并没有提及是否要运行容器

    总结:可以将镜像是文件,容器是进程。容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件(镜像就是容器的系统文件),这里的文件包括进程运行所需要的可执行文件,依赖软件,库文件,配置文件等等。也可以将容器看做是镜像运行的一个实例,或者是文件与进程的关系。

    每运行一个容器,都会在镜像上加一个可写层,但这一层并不会改变镜像本身,这也就是为什么,有时候你如果同一个镜像,启动多个容器,里面的内容不会变,但是如果将可写层持久化,就要通过commit命令来把可写层写到磁盘,即生成新的镜像。

      

     

     

     
  • 相关阅读:
    FirstAFNetWorking
    JSONModel 简单例子
    KVO
    KVC
    关于UITableView的性能优化(历上最全面的优化分析)
    浅拷贝和深拷贝
    UI2_异步下载
    UI2_同步下载
    算法图解学习笔记02:递归和栈
    算法图解学习笔记01:二分查找&大O表示法
  • 原文地址:https://www.cnblogs.com/ltyc/p/14069618.html
Copyright © 2011-2022 走看看