Vglrun не работает в Docker контейнере - PullRequest
0 голосов
/ 29 января 2020

Примечание. Это поле без заголовка 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 дисплеях?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...