Docker博客文章指出:
默认情况下,Docker 容器非常安全。尤其是当您以非特权用户(即非 root)的身份在容器内运行进程时。”
那么,如果我在 docker 下以 root 身份运行,安全问题是什么?我的意思是,如果我以非特权用户的身份处理我的进程是非常安全的,那么,以 root 用户身份托管在容器中怎么会有害呢?我只是要求它理解它,如果以root身份运行时不安全,如何隔离它?那么哪些系统调用可以暴露主机系统呢?
当您以 root 身份运行时,您可以访问更广泛的内核服务。例如,您可以:
(有趣的是,所有这些示例都受功能保护。)
关键是作为root,可以行使更多的内核代码;如果该代码中存在漏洞,您可以以 root 身份触发它,但不能以普通用户身份触发。
此外,如果有人找到破解容器的方法,如果您以 root 用户身份破解,那么您显然会比普通用户造成更大的伤害。
您可以通过在 docker 上回显来重新启动主机/proc/sysrq-trigger
。在 docker 中以 root 身份运行的进程可以执行此操作。
这似乎是一个很好的理由不在 docker 中以 root 身份运行进程;)