天天看点

《第一本Docker书(修订版)》——1.5 Docker的技术组件

本节书摘来自异步社区《第一本docker书(修订版)》一书中的第1章,第1.5节,作者:【澳】james turnbull(詹姆斯•特恩布尔)著,更多章节内容可以访问云栖社区“异步社区”公众号查看

docker可以运行于任何安装了现代linux内核的x64主机上。推荐的内核版本是3.8或者更高。docker的开销比较低,可以用于服务器、台式机或笔记本。它包括以下几个部分。

一个原生的linux容器格式,docker中称为libcontainer。

linxu内核的命名空间(namespace)[9],用于隔离文件系统、进程和网络。

文件系统隔离:每个容器都有自己的root文件系统。

进程隔离:每个容器都运行在自己的进程环境中。

网络隔离:容器间的虚拟网络接口和ip地址都是分开的。

资源隔离和分组:使用cgroups[10](即control group,linux的内核特性之一)将cpu和内存之类的资源独立分配给每个docker容器。

写时复制[11]:文件系统都是通过写时复制创建的,这就意味着文件系统是分层的、快速的,而且占用的磁盘空间更小。

日志:容器产生的stdout、stderr和stdin这些io流都会被收集并记入日志,用来进行日志分析和故障排错。

交互式shell:用户可以创建一个伪tty终端,将其连接到stdin,为容器提供一个交互式的shell。