Docker-实现原理
参考文献
底层实现原理及关键技术
Docker与虚拟机的区别
虚拟机是通过管理系统(Hypervisor)模拟CPU,内存,网络等硬件,然后在这些模拟的硬件上创建客户内核和操作系统.
这样做的好处就是虚拟机有自己的内核和操作系统,并且硬件都是通过虚拟机管理系统模拟出来的,用户程序无法直接使用到主机的操作系统和硬件资源,因此虚拟机也对隔离性和安全性有着更好的保证.
Docker容器则是通过Linux内核的Namespace技术实现了文件系统、进程、设备以及网络的隔离,然后再通过Cgroups对CPU、内存等资源进行限制,最终实现了容器之间相互不受影响,由于容器的隔离性仅仅依靠内核来提供,因此容器的隔离性也远弱于虚拟机
资源限制
123--cpus 限制 CPU 配额-m, --memory 限制内存配额--pids-limit 限制容器的 PID 个数
1docker run -it --cpus=1 -m=2048m --pids-limit=100 ...