Docker可以运行于任何安装了现代Linux内核的x64主机上。我们推荐的内核版本是3.8或者更高。Docker的开销比较低,可以用于服务器,台式机或笔记本。一个原生的Linux容器格式,Docker中称为libcontainer,或者很流行的容器平台lxc。libcontainer格式现在是Docker容器的默认格式。
Linux内核的命名空间(namespace),用于隔离文件系统,进程和网络:
文件系统隔离:每个容器都有自己的root文件系统;
进程隔离:每个容器都运行在自己的进程环境中;
网络隔离:容器间的虚拟网络接口和IP地址都是分开的;
资源隔离和分组:使用cgroups (即control group,Linux的内核特性之一)将CPU和内存之类的资源独立分配给每个Docker容器。
写时复制:文件系统都是通过写时复制创建的,这就意味着文件系统是分层的,快速的,而且占用的磁盘空间更小。
日志:容器产生的STDOUT,STDERR和STDIN这些IO流都会被收集并记入日志,用来进行日志分析和故障排错。
交互式shell:用户可以创建一个伪try终端,将其连接到STDIN,为容器提供一个交互式的shell。