docker 技术组件
- 一个原生的linux容器格式,libcontainer
- Linux内核的命名空间,用于隔离文件系统、进程和网络
- 文件系统隔离:每个容器都有自己的root文件系统
- 进程隔离:每个容器有自己的进程环境
- 网络隔离:容器间的虚拟网络接口和IP地址都是分开的
- 资源隔离和分组:使用cgroups(conrtole group),将cpu和内存等资源分配给容器
- 写时复制:文件系统都是通过写时复制创建,意味着文件系统是分层的、空间占用小
- 日志:容器产生的STDOUT, STDERR,STDIN这些IO流都会被收集并记入日志,用来进行日志分析和故障排查
- 交互式shell:可以创建伪tty,将其连接到STDIN