繁体   English   中英

Docker:如何为本地用户授予 root 权限?

[英]Docker: How to give root permissions for the local user?

我正在像这样在 Docker 中运行构建:

docker run --user $(id -u):$(id -g) --rm --network=host -v `pwd`:${SRC_MOUNT_DIR} my-image:latest my-build-script.sh

我正在使用--user设置本地用户,以避免 root 拥有的文件出现在我的主目录中。

现在,问题是我需要在我的构建脚本中使用sudo apt install来安装来自其他一些构建的一些依赖项,但这需要 root。

我怎么安排这个? 我想不可能让所有可能的用户在没有密码的情况下使sudo工作..?

如果您容器内的用户可以运行sudo apt install ...那么您也可以以 root 身份运行容器中的所有内容,因为任何攻击都可以sudo ...任何攻击代码。 反而:

  • 考虑是否需要在容器内apt install ,或者是否可以在图像中安装。 最好在映像中安装二进制文件并部署它们,而不是每次运行容器时都重新安装应用程序。

  • 如果您有一个在启动时需要 root 的用例,那么以 root 身份启动您的容器,然后在完成这些 root 步骤后将其交给用户。 gosu这样的工具就是为此而设计的。 对于执行此操作的入口点示例,我有一个带有入口点脚本的 docker-base 映像,该脚本添加gosu并使用exec运行 CMD 以避免/bin/sh作为 pid 1(这有助于信号处理)。

Gosu 可以在以下位置找到: https : //github.com/tianon/gosu

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM