【问题标题】:Docker make environment variable unwritableDocker使环境变量不可写
【发布时间】:2018-12-16 20:39:08
【问题描述】:

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

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

如何使这个变量不可写?

【问题讨论】:

    标签: docker gpu nvidia


    【解决方案1】:

    readonly NVIDIA_VISIBLE_DEVICES添加到linux的某个启动文件(可能是.bashrc),在启动容器时使用-e设置NVIDIA_VISIBLE_DEVICES的默认值。

    那么用户不能在jupyter中更改它。

    【讨论】:

    • 谢谢!我猜必须在 docker 容器操作系统上设置“只读 NVIDIA_VISIBLE_DEVICES”?
    • 如何重新加载 nvidia 以便我看到 NVIDIA_VISIBLE_DEVICES 的变化
    • 重启或重新设置容器,我认为 NVIDIA_VISIBLE_DEVICES 将应用于您的环境。我不熟悉gpu相关的,但如果只是一个环境变量,我认为它与其他应用程序一样。
    • readonly 是特定于 bash 和其他 shell 的 shell 扩展,不影响子进程。我认为这不会解决 OP 的问题,如果容器不包含 bash 和/或不运行 shell 启动脚本(两者都很常见),则可能无法工作。
    • 但是op使用jupyter,限制场景,虽然不是每个场景都完美解决
    猜你喜欢
    • 2021-01-23
    • 2017-09-12
    • 2020-12-07
    • 2015-06-17
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    相关资源
    最近更新 更多