如何在 ubuntu 20.04 上运行的 nvidia-docker 上指定 ulimit

如何在 ubuntu 20.04 上运行的 nvidia-docker 上指定 ulimit

团队:这里需要一些帮助......

主题:--default-ulimit memlock=16777216:16777216插入

/etc/systemd/system/docker.service.d/docker-options.conf

问题:系统正在运行nvidia-docker,插入上述内容后,重新加载 systemd 并重新启动 docker,此节点上的容器仍未反映我设置的值。然后,我尝试在运行通用 docker 的另一个系统上进行操作,在那里我能够看到 ulimit 立即反映出来。澄清:nvidia-dockerulimit 是否依赖于其他文件才能生效?

cat  /etc/systemd/system/docker.service.d/docker-options.conf
[Service]
Environment="DOCKER_OPTS=  --data-root=/var/lib/docker --log-opt max-size=50m --log-opt max-file=5 --iptables=false --default-ulimit memlock=16777216:16777216"

不确定下面的文件是否会干扰但为什么它在通用 docker 节点上按预期工作?

cat /etc/systemd/system/docker.service.d/docker-override.conf 
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -s overlay2 --default-shm-size=1G
LimitMEMLOCK=infinity
LimitSTACK=67108864

或者由于此系统正在运行,我需要在守护进程文件中指定吗nvidia-docker?我不确定,所以想在进行更改之前确定一下,另外请让我知道语法应该如何,因为我是新手。

cat /etc/docker/daemon.json 
{
    "bip": "10.10.1.1/24",
    "default-runtime": "nvidia",
    "registry-mirrors": [
        "https://mirror.gcr.io"
    ],
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }

当在 docker 选项文件中设置标志时,从非 nvidia docker 系统进行测试。

kubectl exec -ti -n team-telegraf   team-telegraf-4b5l2 -- bash -c "ulimit -l"
16384. <<<<< Observe

答案1

明白了。示例复制自这里

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    },

    "default-ulimits": {
         "memlock": { "name":"memlock", "soft":  -1, "hard": -1 },
         "stack"  : { "name":"stack", "soft": 67108864, "hard": 67108864 }
    }
}

相关内容