![](/img/trans.png)
[英]Unable to give write permissions to Docker volume to non-root user in Docker Compose
[英]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.