docker容器的安全,很大程度上依赖于linux系统自身,评估docker的安全性时,主要考虑以下几个方面
linux内核的命名空间机制提供的容器隔离安全
linux控制组机制对容器资源的控制能力安全
linux内核的能力机制所带来的操作权限安全
docker程序(特别是服务端)本身的抗攻击性
其他安全增强机制对容器安全性的影响
命名空间隔离的安全
当dockr run启动一个容器时,docker将在后台为容器创建一个独立的命名空间。命名空间提供了最基础也最直接的隔离。
与虚拟机方式相比,通过linux namespace来实现的隔离并不是那么彻底
容器只是运行在宿主机上的一种特殊的进程,那么多个容器之间使用的还是同一个宿主机的操作系统内核
在linux内核中,有很多资源和对象是不能被namespace化的,例如:时间
cpu限制
cgroup控制的是资源上限
docker run -it --rm --cpu-quota 20000 busybox
此时再开启一个窗口,用来监控
可以看到它只占取了cpu20%的资源,与我们设定的相同
当我们退出时,它会立即释放资源
当我们不加参数时,