zoukankan      html  css  js  c++  java
  • docker-learning_01

    Docker_Practice学习笔记
      操作系统分为内核和用户空间,对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。Docker镜像就相当于是一个root文件系统。
      docker镜像具有分层存储的特性。在docker设计中利用Union FS技术,将镜像设计为分层存储的架构。由一组文件系统组成,或者说由多层文件系统联合组成。镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际并未真正删除前一层的文件,而是仅在当前层标记为改文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但实际上改文件会一直跟随镜像。
      容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root文件系统,自己的网络配置,自己的进程空间,甚至自己的用户ID空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统中操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。
      容器使用的也是分层存储,每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层。可以称这个为容器运行时读写而准备的存储层为容器存储层。容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此任何保存于容器存储层的信息都会随容器删除而丢失。容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化,所有的文件写入操作,都应该使用数据卷volume,或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主或网络存储发生读写,其性能和稳定性更高。数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器可以随意删除,重新启动运行,数据却不会丢失。
      镜像image和容器container的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建,启动,停止,删除,暂停等。

  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/zzsaf/p/7851586.html
Copyright © 2011-2022 走看看