Me gustaría ejecutar 2 imágenes acoplables con docker-compose.
una imagen debe ejecutarse con nvidia-docker y la otra con docker.
He visto esta publicación usar nvidia-docker-compose lanzar un contenedor, pero salí pronto pero esto no funciona para mí (ni siquiera ejecuta una sola imagen)...
Cualquier idea sería genial.
ACTUALIZACIÓN: compruebe primero nvidia-docker 2 y su compatibilidad con docker-compose https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#do-you-support-docker-compose
(Primero sugeriría agregar la etiqueta nvidia-docker).
Si observa el código de nvidia-docker-compose aquí , solo genera un archivo docker específico para docker-compose después de una consulta de la configuración de nvidia en localhost: 3476.
También puede hacer a mano este archivo docker-compose ya que resultan bastante simples, siga este ejemplo, reemplace 375.66 con su versión de controlador nvidia y coloque tantas líneas /dev/nvidia[n] como tarjetas gráficas tenga (no no intente poner servicios en GPU separadas, ¡pero hágalo!):
services: exampleservice0: devices: - /dev/nvidia0 - /dev/nvidia1 - /dev/nvidiactl - /dev/nvidia-uvm - /dev/nvidia-uvm-tools environment: - EXAMPLE_ENV_VARIABLE=example image: company/image volumes: - ./disk:/disk - nvidia_driver_375.66:/usr/local/nvidia:ro version: '2' volumes: media: null nvidia_driver_375.66: external: trueLuego simplemente ejecute este archivo docker-compose hecho a mano con un comando clásico de docker-compose.
Tal vez luego pueda componer con acopladores que no sean de nvidia omitiendo las cosas específicas de nvidia en los otros servicios.
Además de la respuesta aceptada, aquí está mi enfoque, un poco más corto. Necesitaba usar la versión anterior de docker-compose ( 2.3 ) debido al tiempo de runtime: nvidia (no necesariamente funcionará con la version: 3 - vea esto ). Configurar NVIDIA_VISIBLE_DEVICES=all hará visibles todas las GPU.
version: '2.3' services: your-service-name: runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICES=all # ...your stuffMi ejemplo está disponible aquí .
Probado en NVIDIA Docker 2.5.0, Docker CE 19.03.13 y NVIDIA-SMI 418.152.00 y CUDA 10.1 en Debian 10.