团队:这里需要一些帮助......
主题:--default-ulimit memlock=16777216:16777216
插入
/etc/systemd/system/docker.service.d/docker-options.conf
问题:系统正在运行nvidia-docker
,插入上述内容后,重新加载 systemd 并重新启动 docker,此节点上的容器仍未反映我设置的值。然后,我尝试在运行通用 docker 的另一个系统上进行操作,在那里我能够看到 ulimit 立即反映出来。澄清:nvidia-docker
ulimit 是否依赖于其他文件才能生效?
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 }
}
}