Примечание. Это поле без заголовка AWS на VN C, текущий рабочий стол, на котором я работаю, - DISPLAY =: 1.0
Я пытаюсь создать контейнер, который может содержать приложение opengl, но у меня возникают проблемы с корректной работой vglrun. В настоящее время я запускаю его с --gpus all в docker строке запуска, а также
# xhost +si:localuser:root
# docker run --rm -it \
-e DISPLAY=unix$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--gpus all centos:7 \
sh -c "yum install epel-release -y && \
yum install -y VirtualGL glx-utils && \
vglrun glxgears"
No protocol specified
[VGL] ERROR: Could not open display :0
На хосте:
$ nvidia-smi
Tue Jan 28 22:32:24 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.44 Driver Version: 440.44 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla M60 Off | 00000000:00:1E.0 Off | 0 |
| N/A 30C P8 16W / 150W | 56MiB / 7618MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2387 G /usr/bin/X 55MiB |
+-----------------------------------------------------------------------------+
Я могу подтвердить запуск glxgears без vglrun работает нормально но мое приложение, которое я пытаюсь встроить в docker, по своей сути использует vglrun. Я также попытался использовать контейнер nvidia nvidia/opengl:1.1-glvnd-runtime-centos7
, но безуспешно.
запуск его с vglrun -d :1.0 glxgears
или vglrun -d unix:1.0 glxgears
выдает мне эту ошибку:
Error: couldn't get an RGB, Double-buffered visual
Что я делаю неправильно Вот? vglrun не работает в контейнере?
РЕДАКТИРОВАТЬ: Кажется, я подошел к этой проблеме неправильно, кажется, работает, когда я на основном экране: 0 дисплей, но при использовании VN C для просмотра: 1, драйверы Mesa используются вместо драйверов Nvidia. Есть ли способ использовать графический процессор на порожденных VN C дисплеях?