浅谈 Docker 隔离性和安全性
介绍 相信很多开发者都默认Docker这样的容器是一种沙盒(sandbox)应用,也就是说他们可以用root权限在Docker中运行随便什么应用,而Docker有安全机制能保护宿主系统。比如,有些人觉得Docker容器里面的进程跟虚拟机里面的进程一样安全;还有的人随便找个源就下载没有验证过的Docker镜像,看都不看内容就在宿主机器上尝试、学习和研究;还有一些提供PaaS服务的公司竟然允许用户向多租户系统中提交自己定制的Docker镜像。请注意,上述行为均是不安全的。 本文将介绍Docker的隔离性和安全性,以及为什么它在隔离和安全性上不如传统的虚拟机。 更多信息 何谓安全性? 单单就Docker来说,安全性可以概括为两点: 不会对主机造成影响 不会对其他容器造成影响 所以安全性问题90%以上可以归结为隔离性问题。而Docker的安全问题本质上就是容器技术的安全性问题,这包括共用内核问题以及Namespace还不够完善的限制: /proc、/sys等未完全隔离 Top, free, iostat等命令展示的信息未隔离 Root用户未隔离 /dev设备未隔离 内核模块未隔离 SELinu...