Docker blog post表示:
默认情况下,Docker容器非常安全;特别是如果你 负责在容器内运行您的进程 非特权用户(即非root用户)。“
那么,如果我在docker下以root身份运行,那么安全问题是什么?我的意思是,如果我将我的进程作为非特权用户来处理它是非常安全的,那么,作为root用户,如何在容器中托管会有害?我只是要求它理解它,如果以root身份运行它是不安全的,它怎么能被隔离?哪个系统调用可以暴露主机系统呢?
答案 0 :(得分:16)
以root身份运行时,您可以访问更广泛的内核服务。例如,您可以:
(有趣的是,所有这些示例都受capabilities保护。)
关键是,作为root,你可以运用更多的内核代码;如果该代码中存在漏洞,您可以以root用户身份触发,但不能以普通用户身份触发。
此外,如果有人找到了打破容器的方法,如果你以root用户身份突破,显然可以比普通用户造成更大的伤害。
答案 1 :(得分:5)
您可以通过在docker上回显/proc/sysrq-trigger
来重启主机。在docker中以root身份运行的进程可以执行此操作。
这似乎是很好的理由不在docker中以root身份运行进程;)