docker不能对“硬盘I/O读写”进行隔离,但可以对文件系统、网络(Network)、进程间的通信、针对权限的用户和用户组、进程内的PID和宿主机的PID、主机名与域名等进行隔离。

本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。
Docker可以控制很多资源,目前还不能对“硬盘I/O读写”资源进行隔离。
硬盘I/O是指硬盘的输入和输出(Input和Output的缩写)。就是发指令,从磁盘读取某段扇区的内容。指令一般是通知磁盘开始扇区位置,然后给出需要从这个初始扇区往后读取的连续扇区个数,同时给出动作是读,还是写。
对于磁盘I/O资源来说,考量的参数是容量和读写速度,因此对容器的磁盘限制也应该从这两个维度出发。目前Docker 支持对磁盘的读写速度进行限制,但是并没有方法能限制容器能使用的磁盘容量(一旦磁盘 mount 到容器里,容器就能够使用磁盘的所有容量)。
那么docker可以对哪些资源进行隔离?
Docker通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过*写时复制机制(copy-on-write)*实现了高效的文件操作。
namespace可以隔离哪些