镜像Image
- 不包含任何动态数据,其内容在构建之后也不会被改变
- 是一个特殊的文件系统
- 它包含操作系统完整的root文件系统
- 它不是一个具体的像ISO那样的打包文件,而是一个虚拟的概念,不是一个文件,而是由一组文件系统组成。
- 镜像一层一层构建。后一层上的任何改变只发生在自己这一层,
- 删除前一层文件的操作公是在妆前层票房为该文件已删除。
容器Container
- Container是Image运行时的实体,Image是静态的定义。像是面向对象中类和实例的关系
- 容器的实质是进程,但容器的进程运行于属于自己的独立的命名空间
- 容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层。
- 容器存储都将随窗口消亡时消失。
- 容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。
- 文件的写入操作,都应该使用数据卷、或绑定宿主目录
Linux Namespace
Linux内核中提供了这六种namespace隔离的系统调用。
- UTS:隔离主机名与域名
- IPC:信号量、消息队列和共享内存
- PID:进程编号
- Network:网络设备、网络栈、端口
- Mount:挂载点
- User:用户和用户组