我浏览了几篇关于 Docker 最佳实践的文章,并认识到以非特权用户身份运行容器具有一些明显的安全优势。所以我的第一个问题是:为什么要使用USER
指令来构建你的图像?也就是说,为什么不简单地将镜像构建为root
,而run
将容器构建为受限用户?在那种情况下,它似乎USER
是多余的。
故事并没有就此结束。我尝试了各种用例USER
。当我基于 debian 快照构建映像时,我放置USER
在所有相关apt-get
安装之后。到目前为止,一切都很好。但是,当我尝试在USER
的主目录中创建内容时,权限问题就会浮出水面——无论我是否明确地USER
为封闭的父目录分配和分组权限。
每当我遇到一个不能以明显方式工作的功能时,我都会问自己,它是否值得保留。USER
那么,考虑到您可能可以从容器外部以用户限制的方式(至少从权限的角度来看)做所有事情,是否有任何实际的理由来保留?