Docker

镜像Image

  • 不包含任何动态数据,其内容在构建之后也不会被改变
  • 是一个特殊的文件系统
  • 它包含操作系统完整的root文件系统
  • 它不是一个具体的像ISO那样的打包文件,而是一个虚拟的概念,不是一个文件,而是由一组文件系统组成。
  • 镜像一层一层构建。后一层上的任何改变只发生在自己这一层,
  • 删除前一层文件的操作公是在妆前层票房为该文件已删除。

容器Container

  • Container是Image运行时的实体,Image是静态的定义。像是面向对象中类和实例的关系
  • 容器的实质是进程,但容器的进程运行于属于自己的独立的命名空间
  • 容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层。
  • 容器存储都将随窗口消亡时消失。
  • 容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。
  • 文件的写入操作,都应该使用数据卷、或绑定宿主目录

Linux Namespace

Linux内核中提供了这六种namespace隔离的系统调用。

  • UTS:隔离主机名与域名
  • IPC:信号量、消息队列和共享内存
  • PID:进程编号
  • Network:网络设备、网络栈、端口
  • Mount:挂载点
  • User:用户和用户组