Docker容器的安全性,很大程度上依赖于Linux系统自身,评估Docker的安全性时,主要考虑以下几个方面∶
●Linux内核的命名空间机制提供的容器隔离安全
●Linux控制组机制对容器资源的控制能力安全。
●Linux内核的能力机制所带来的操作权限安全
●Docker程序(特别是服务端)本身的抗攻击性。
●其他安全增强机制对容器安全性的影响。
在使用 docker 运行容器时,默认的情况下,docker没有对容器进行硬件资源的限制,当一台主机上运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU、内存和磁盘资源。如果不对容器使用的资源进行限制,那么容器之间会互相影响,小的来说会导致容器资源使用不公平;大的来说,可能会导致主机和集群资源耗尽,服务完全不可用。
docker 作为容器的管理者,自然提供了控制容器资源的功能。正如使用内核的 namespace 来做容器之间的隔离,docker 也是通过内核的 cgroups 来做容器的资源限制;包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制
1. 命名空间隔离的安全
当docker run启动一个容器时,Docker将在后台为容器创建一个独立的命名空间。命名空间提供了最基础也最直接的隔离,它不能进行一个完全彻底的隔离
本文讨论了Docker容器的安全性,包括命名空间隔离、控制组资源控制、内核能力机制、Docker服务端防护以及其他安全特性。强调了通过lxcfs增强容器隔离性和资源可见性,以及如何设置容器的特权级和白名单。同时,提出了容器资源控制的实践,如内存和CPU限额,并提出了Docker安全加固的思路和方法。
订阅专栏 解锁全文

4438

被折叠的 条评论
为什么被折叠?



