Docker使环境变量不可写

Docker使环境变量不可写,docker,gpu,nvidia,Docker,Gpu,Nvidia,我有一个机器学习设备,有6台v100,人们可以通过Docker容器中的Jupyter访问它们。我想控制谁使用哪个图形卡,所以我必须设置一个环境变量 因此,我想将环境变量NVIDIA_VISIBLE_DEVICES设置为特定的图形卡。但是在Jupyter(在docker容器上运行)中,用户可以编辑这个变量,这样每个人都可以访问每个GPU 如何使此变量不可写入?将只读NVIDIA_可见_设备添加到linux的某些启动文件(可能是.bashrc),在启动容器时使用-e设置NVIDIA_可见_设备的默认

我有一个机器学习设备,有6台v100,人们可以通过Docker容器中的Jupyter访问它们。我想控制谁使用哪个图形卡,所以我必须设置一个环境变量

因此,我想将环境变量
NVIDIA_VISIBLE_DEVICES
设置为特定的图形卡。但是在Jupyter(在docker容器上运行)中,用户可以编辑这个变量,这样每个人都可以访问每个GPU


如何使此变量不可写入?

只读NVIDIA_可见_设备
添加到linux的某些启动文件(可能是.bashrc),在启动容器时使用
-e
设置
NVIDIA_可见_设备
的默认值


然后用户无法在jupyter中更改它。

谢谢!“readonly NVIDIA_VISIBLE_DEVICES”(只读NVIDIA_VISIBLE_设备)必须设置在docker容器操作系统上,我猜?我如何重新加载NVIDIA以便看到NVIDIA_VISIBLE_设备的更改重新启动或重新设置容器,我认为NVIDIA_VISIBLE_设备将应用于您的环境。我不熟悉与gpu相关的程序,但如果只是一个环境变量,我认为它也适用于其他应用程序。
readonly
是特定于
bash
和其他shell的shell扩展,不会影响子进程。我认为这不会解决OP的问题,如果容器不包含bash和/或不运行shell启动脚本(这两种脚本都很常见),那么这可能不起作用。但是OP使用jupyter,限制场景,尽管不是每个场景的完美解决方案