Docker学习__容器(container)概念


 其他知识点,会在后续学习过程中再做完善。

镜像(Image)和容器(Container)的关系:

  • 镜像是静态的定义,容器是镜像运行的实体。
  • 就像是Linux命令,命令的配置文件是镜像,使用命令配置文件运行命令的过程是容器。

容器的隔离方式:

  容器的实质是进程,但与直接在宿主机执行的进程不同,容器进程运行于属于自己独立的命名空间。

  为进程提供运行环境,并且能够保护其内部进程不受其它进程干扰。

   六种名称空间:

名称       系统调用参数         隔离内容
UTS CLONE_NEWUTS 主机名,域名
IPC  CLONE_NEWIPC 信号量,消息队列和共享内存
PID CLONE_NEWPID 进程编号
Network CLONE_NEWNET 网络设备,网络栈,端口等
Mount CLONE_NEWNS 挂载点(文件系统生成树)
User CLONE_NEWNSER 用户和用户组

 

 

  

 容器存储层:

  • 容器也是分层存储的。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,

  我们可以称这个为容器运行时读写而准备的存储层为容器的存储层。

  • 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。
  • 容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。

 数据卷:

  • 所有文件写入操作,都应该使用数据卷(Volume),或者绑定宿主目录,在这些位置的读写会跳过

  容器存储层,直接对宿主[或网络存储]发生读写,其性能和稳定性更高。

  • 数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器可以随

  意删除,重新启动,数据却不会丢失

猜你喜欢

转载自www.cnblogs.com/lizhi199322/p/12257790.html