Compose: рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рдХреЗ рддрд╣рдд рдПрдирд╡реАрдЖрдИрдбреАрдЖрдИрдП рдЬреАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдордИ 2019  ┬╖  160рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: docker/compose

Docker 19.03.0 Beta 2 рдХреЗ рддрд╣рдд, NVIDIA GPU рдХреЛ рдирдП CLI API --gpus рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред https://github.com/docker/cli/pull/1714 рдЗрд╕ рд╕рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВред

рдЕрдм рдПрдХ рдмрд╕ рдЬреАрдкреАрдпреВ-рддреНрд╡рд░рд┐рдд рдбреЙрдХрдЯрд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП --gpus рд╡рд┐рдХрд▓реНрдк рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

$ docker run -it --rm --gpus all ubuntu nvidia-smi
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
f476d66f5408: Pull complete 
8882c27f669e: Pull complete 
d9af21273955: Pull complete 
f5029279ec12: Pull complete 
Digest: sha256:d26d529daa4d8567167181d9d569f2a85da3c5ecaf539cace2c6223355d69981
Status: Downloaded newer image for ubuntu:latest
Tue May  7 15:52:15 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.116                Driver Version: 390.116                   |
|-------------------------------+----------------------+----------------------+
| 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 P4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   39C    P0    22W /  75W |      0MiB /  7611MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
:~$ 

рдЖрдЬ рддрдХ, рдХрдореНрдкреЛрдЬрд╝ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ NVIDIA GPU рдХреЗ рд▓рд┐рдП рдХрдореНрдкреЛрдЬрд╝ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╣реИред

kinenhancement statu0-triage

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдПрдХ рддрддреНрдХрд╛рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╕рднреА 160 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрдм (рдЕрдм) рд╡рд┐рд░рд╛рд╕рдд 'рдПрдирд╡реАрдбрд┐рдпрд╛ рд░рдирдЯрд╛рдЗрдо' рдбреЙрдХрд░ 19.03.0 рдФрд░ nvidia-container-toolkit-1.0.0-2 рд╕рд╛рде рдЯреВрдЯреА рд╣реБрдИ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ: https://github.com/NVedia/nvidia-docker-issues/1017

$ cat docker-compose.yml 
version: '2.3'

services:
 nvidia-smi-test:
  runtime: nvidia
  image: nvidia/cuda:9.2-runtime-centos7

$ docker-compose run nvidia-smi-test
Cannot create container for service nvidia-smi-test: Unknown runtime specified nvidia

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: docker run --gpus all nvidia/cudagl:9.2-runtime-centos7 nvidia-smi

рдпрд╣ рдирд╣реАрдВ рд╣реИ: docker run --runtime=nvidia nvidia/cudagl:9.2-runtime-centos7 nvidia-smi

рдЗрд╕ рдкрд░ рдХреЛрдИ рдХрд╛рдо рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдореБрдЭреЗ рдПрдХ рдирдпрд╛ рдЙрдмрдВрдЯреВ 18.04 рдПрд▓рдЯреАрдПрд╕ рдорд╢реАрди рдкрд░ рдирдпрд╛ рдбреЙрдХрд░ рд╕реАрдИ 19.03.0 рдорд┐рд▓рд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдФрд░ рдорд┐рд▓рд╛рди рд╡рд╛рд▓реЗ NVIDIA рдХрдВрдЯреЗрдирд░ рдЯреВрд▓рдХрд┐рдЯ (nv nvidia-docker2) рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ docker-compose.yml 3.7 --gpus рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рдХрд╛рд░реНрдп рд╣реИ?

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: docker run --gpus all nvidia/cudagl:9.2-runtime-centos7 nvidia-smi

рдпрд╣ рдирд╣реАрдВ рд╣реИ: docker run --runtime=nvidia nvidia/cudagl:9.2-runtime-centos7 nvidia-smi

рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

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

рдЕрдкрдиреЗ /etc/docker/daemon.json --runtime=nvidia рд▓рд┐рдП рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ ред

ping @KlaasH @ulyssessouza @Goryudyuma @ рдХреНрд░рд┐рд╕-рдХреНрд░реЛрдиред рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди?

рдпрд╣ рдПрдХ рддрддреНрдХрд╛рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ /etc/docker/daemon.json рд╣реИ, docker рдореЗрдВ рдкреНрд░рд╡рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж> = 19.03 рдФрд░ nvidia-docker2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп nvidia-container-toolkit рдирд┐рдХрд╛рд▓рдирд╛?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, --gpus compose рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред

рдирд╣реАрдВ, рдпрд╣ рддрдм рддрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдо рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЧрдкрд╕ рдзреНрд╡рдЬ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ред

рдПрдирд╡реАрдбрд┐рдпрд╛-рдбреЙрдХ-рд░рдирдЯрд╛рдЗрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
https://github.com/NVodia/nvidia-container-runtime#docker -engine-setup
/etc/docker/daemon.json рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
{
"рд░рдирдЯрд╛рдЗрдо": {
"рдПрдирд╡реАрдбрд┐рдпрд╛": {
"рдкрде": "/ usr / рдмрд┐рди / рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо", "
"runtimeArgs": []
}
}
}

рдбреЛрдХрд░-рд▓рд┐рдЦреЗрдВ:
рд░рдирдЯрд╛рдЗрдо: рдПрдирд╡реАрдбрд┐рдпрд╛
рд╡рд╛рддрд╛рд╡рд░рдг:
- NVIDIA_VISIBLE_DEVICES = рд╕рднреА

рдЕрдм "/ usr / bin / nvidia-container-runtime" рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рдирд╣реАрдВ рд╣реИред рдореБрджреНрджрд╛ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдпрд╣ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝, рдЕрдирд┐рд▓рд┐рд▓ рдлрд┐рдХреНрд╕ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдПрдирд╡реАрдбрд┐рдпрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛

рдПрдирд╡реАрдбрд┐рдпрд╛-рдбреЙрдХ-рд░рдирдЯрд╛рдЗрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
https://github.com/NVodia/nvidia-container-runtime#docker -engine-setup
/etc/docker/daemon.json рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
{
"рд░рдирдЯрд╛рдЗрдо": {
"рдПрдирд╡реАрдбрд┐рдпрд╛": {
"рдкрде": "/ usr / рдмрд┐рди / рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо", "
"runtimeArgs": []
}
}
}

рдбреЛрдХрд░-рд▓рд┐рдЦреЗрдВ:
рд░рдирдЯрд╛рдЗрдо: рдПрдирд╡реАрдбрд┐рдпрд╛
рд╡рд╛рддрд╛рд╡рд░рдг:

  • NVIDIA_VISIBLE_DEVICES рд╕рднреА =

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрднреА рднреА рд╣реЛ рд░рд╣реА Unsupported config option for services.myservice: 'runtime' рдЬрдм рднрд╛рдЧрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ docker-compose up

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрднреА рднреА рд╣реЛ рд░рд╣реА Unsupported config option for services.myservice: 'runtime' рдЬрдм рднрд╛рдЧрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ docker-compose up

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

/etc/docker/daemon.json рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, docker рд╕реЗрд╡рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ
systemctl рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рд╡рд╛рд▓рд╛
рдХрдореНрдкреЛрдЬрд╝ рдкреНрд░рд╛рд░реВрдк 2.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рд░рдирдЯрд╛рдЗрдо рдЬреЛрдбрд╝реЗрдВ: рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреЛ рдЕрдкрдиреА рдЬреАрдкреАрдпреВ рд╕реЗрд╡рд╛ рдореЗрдВред рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 1.19.0 рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
docker- рд░рдЪрдирд╛ рдлрд╝рд╛рдЗрд▓:
рд╕рдВрд╕реНрдХрд░рдг: '2.3'

рд╕реЗрд╡рд╛рдПрдВ:
nvsmi:
рдЪрд┐рддреНрд░: ubuntu: 16.04
рд░рдирдЯрд╛рдЗрдо: рдПрдирд╡реАрдбрд┐рдпрд╛
рд╡рд╛рддрд╛рд╡рд░рдг:
- NVIDIA_VISIBLE_DEVICES = рд╕рднреА
рдЖрджреЗрд╢: рдПрдирд╡реАрдбрд┐рдпрд╛-рдПрд╕рдЖрдИрдЖрдИ

@cheperuiz , рдЖрдк рдбреЗрдорди.рдЬрд╕рди рдореЗрдВ рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЖрдк рд╕рднреА рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдПрдирд╡реАрдбрд┐рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рддрдХ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред
{ "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } }, }

рдЖрд╣! рдзрдиреНрдпрд╡рд╛рдж @Kwull , рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ default-runtime рд╣рд┐рд╕реНрд╕рд╛ ... рдЕрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ :)

@uderik , runtime рдЕрдм рд╡рд░реНрддрдорд╛рди 3.7 рдХрдВрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рд╕реНрдХреАрдорд╛ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдФрд░ рди рд╣реА рд▓рдВрдмрд┐рдд 3.8 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЬрд┐рд╕реЗ рдЕрдВрддрддрдГ Docker 19.03 рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: https://github.com/docker/compose/blob/ 5e587d574a94e011b029c2fb491fb0f4bdeef71c / рд▓рд┐рдЦреЗрдВ / config / config_schema_v3.8.json

@ рдЬреЛрдВрдХреЛрд▓реНрдмреА runtime 3.x рдХрд╛ рдЭрдВрдбрд╛ рдХрднреА рдирд╣реАрдВ рд░рд╣рд╛ред рдпрд╣ рдХреЗрд╡рд▓ 2.x рдЯреНрд░реИрдХ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, (2.3 рдФрд░ 2.4)ред

рд╣рд╛рдБ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдФрд░ рднрд▓реЗ рд╣реА рдореЗрд░реЗ docker-compose.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ version: '2.3' (рдЬреЛ рдЕрддреАрдд рдореЗрдВ рдХрд╛рдо рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ) рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ ...
рднрд╡рд┐рд╖реНрдп рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, GPU рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдмрд╕ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдиреЗ + + рдЪрд░ рдЪрд░? рдпрд╛ --gpus рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реЛрдЧрд╛?

@ рдЬреЙрдиреНрдХреЛрд▓рдмреА 3.X рдореЗрдВ runtime рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреНрдпрд╛ рд╣реИ?

@ рдбреИрдирд┐рдпрд▓451 рдореИрдВ рдХреЗрд╡рд▓ рдкрд░рд┐рдзреАрдп рд░реВрдк рд╕реЗ рдкреАрдЫрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ generic_resources рдХреБрдВрдЬреА рдХреЗ рддрд╣рдд рд╣реЛрдЧрд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:

services:
  my_app:
    deploy:
      resources:
        reservations:
          generic_resources:
            - discrete_resource_spec:
                kind: 'gpu'
                value: 2

(https://github.com/docker/cli/blob/9a39a1/cli/compose/loader/full-example.yml#L71-L74 рд╕реЗ)
рдпрд╣рд╛рдБ рдбрд┐рдЬрд╝рд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: https://github.com/docker/swarmkit/blob/master/design/generic_bources.md

рдпрд╣рд╛рдБ 3.8 рд╕реНрдХреАрдорд╛ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдВрдкреЛрдЬрд╝ рдЗрд╢реНрдпреВ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд░реНрдЬ рд╣реИ: https://github.com/docker/compose/issues/6530

рдбреЗрдорди рдХреА рддрд░рдл gpu рдХреНрд╖рдорддрд╛ daemon.json рдпрд╛ dockerd CLI (рдкрд┐рдЫрд▓реЗ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рд░рдирдЯрд╛рдЗрдо рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рддрд░рд╣) рдореЗрдВ рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣

/usr/bin/dockerd --node-generic-resource gpu=2

рдЬреЛ рддрдм NVIDIA рдбреЙрдХрдЯрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд╣реБрдХ рдХрд░рдХреЗ рдкрдВрдЬреАрдХреГрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
https://github.com/moby/moby/blob/09d0f9/daemon/nvidia_linux.go

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╢реАрдирд░реА рдореВрд▓ рд░реВрдк рд╕реЗ рдЬрдЧрд╣ рдореЗрдВ рд╣реИ, рд╢рд╛рдпрдж рдмрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ...

рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрджреНрдпрддрди рдкрд░ рдЗрдВрддрдЬрд╛рд░ рдХрд░, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ bash рдХреЗ рд╕рд╛рде docker run --gpus рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдареАрдХ рдЬрдм рддрдХ ...

рдЕрджреНрдпрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрджреНрдпрддрдиреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ :)

рдареАрдХ рд╣реИ ... рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХреНрдпреЛрдВ рдЦреБрд▓рд╛ рд╣реИред рдпреЗ 3 рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдиреЗрдВ рд╕реНрдХреАрдорд╛ рд╕рдВрд╕реНрдХрд░рдг 3.7 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢реА рд╣реИ рдХрд┐ рддреБрд░реНрдХ рддреБрдЪреНрдЫ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ, рдЗрди рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ python3 setup.py рдмрд┐рд▓реНрдб && рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ docker-compose.yml рд╕рдВрд╕реНрдХрд░рдг 3.7 рд╣реИред

[ruckc<strong i="6">@omnilap</strong> compose]$ git diff
diff --git a/compose/config/config_schema_v3.7.json b/compose/config/config_schema_v3.7.json
index cd7882f5..d25d404c 100644
--- a/compose/config/config_schema_v3.7.json
+++ b/compose/config/config_schema_v3.7.json
@@ -151,6 +151,7 @@

         "external_links": {"type": "array", "items": {"type": "string"}, "uniqueItems": true},
         "extra_hosts": {"$ref": "#/definitions/list_or_dict"},
+        "gpus": {"type": ["number", "string"]},
         "healthcheck": {"$ref": "#/definitions/healthcheck"},
         "hostname": {"type": "string"},
         "image": {"type": "string"},
diff --git a/compose/service.py b/compose/service.py
index 55d2e9cd..71188b67 100644
--- a/compose/service.py
+++ b/compose/service.py
@@ -89,6 +89,7 @@ HOST_CONFIG_KEYS = [
     'dns_opt',
     'env_file',
     'extra_hosts',
+    'gpus',
     'group_add',
     'init',
     'ipc',
@@ -996,6 +997,7 @@ class Service(object):
             dns_opt=options.get('dns_opt'),
             dns_search=options.get('dns_search'),
             restart_policy=options.get('restart'),
+            gpus=options.get('gpus'),
             runtime=options.get('runtime'),
             cap_add=options.get('cap_add'),
             cap_drop=options.get('cap_drop'),

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдЖрдВрддрд░рд┐рдХ рдореБрджреНрджрд╛ рдЬреЛрдбрд╝рд╛ рд╣реИред
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ PR рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ: рд╕реНрдорд╛рдЗрд▓реА:

рдареАрдХ рд╣реИ ... рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХреНрдпреЛрдВ рдЦреБрд▓рд╛ рд╣реИред рдпреЗ 3 рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдиреЗрдВ рд╕реНрдХреАрдорд╛ рд╕рдВрд╕реНрдХрд░рдг 3.7 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢реА рд╣реИ рдХрд┐ рддреБрд░реНрдХ рддреБрдЪреНрдЫ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ, рдЗрди рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ python3 setup.py рдмрд┐рд▓реНрдб && рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ docker-compose.yml рд╕рдВрд╕реНрдХрд░рдг 3.7 рд╣реИред

[ruckc<strong i="7">@omnilap</strong> compose]$ git diff
diff --git a/compose/config/config_schema_v3.7.json b/compose/config/config_schema_v3.7.json
index cd7882f5..d25d404c 100644
--- a/compose/config/config_schema_v3.7.json
+++ b/compose/config/config_schema_v3.7.json
@@ -151,6 +151,7 @@

         "external_links": {"type": "array", "items": {"type": "string"}, "uniqueItems": true},
         "extra_hosts": {"$ref": "#/definitions/list_or_dict"},
+        "gpus": {"type": ["number", "string"]},
         "healthcheck": {"$ref": "#/definitions/healthcheck"},
         "hostname": {"type": "string"},
         "image": {"type": "string"},
diff --git a/compose/service.py b/compose/service.py
index 55d2e9cd..71188b67 100644
--- a/compose/service.py
+++ b/compose/service.py
@@ -89,6 +89,7 @@ HOST_CONFIG_KEYS = [
     'dns_opt',
     'env_file',
     'extra_hosts',
+    'gpus',
     'group_add',
     'init',
     'ipc',
@@ -996,6 +997,7 @@ class Service(object):
             dns_opt=options.get('dns_opt'),
             dns_search=options.get('dns_search'),
             restart_policy=options.get('restart'),
+            gpus=options.get('gpus'),
             runtime=options.get('runtime'),
             cap_add=options.get('cap_add'),
             cap_drop=options.get('cap_drop'),

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрд╕ рдЭрдВрдбреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдорд┐рд▓реАрдВ:

ERROR: for <SERVICE_NAME>  __init__() got an unexpected keyword argument 'gpus'
Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 11, in <module>
    load_entry_point('docker-compose==1.25.0.dev0', 'console_scripts', 'docker-compose')()
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/cli/main.py", line 71, in main
    command()
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/cli/main.py", line 127, in perform_command
    handler(command, command_options)
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/cli/main.py", line 1106, in up
    to_attach = up(False)
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/cli/main.py", line 1102, in up
    cli=native_builder,
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/project.py", line 569, in up
    get_deps,
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/parallel.py", line 112, in parallel_execute
    raise error_to_reraise
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/parallel.py", line 210, in producer
    result = func(obj)
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/project.py", line 555, in do
    renew_anonymous_volumes=renew_anonymous_volumes,
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/service.py", line 546, in execute_convergence_plan
    scale, detached, start
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/service.py", line 468, in _execute_convergence_create
    "Creating"
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/parallel.py", line 112, in parallel_execute
    raise error_to_reraise
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/parallel.py", line 210, in producer
    result = func(obj)
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/service.py", line 466, in <lambda>
    lambda service_name: create_and_start(self, service_name.number),
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/service.py", line 454, in create_and_start
    container = service.create_container(number=n, quiet=True)
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/service.py", line 337, in create_container
    previous_container=previous_container,
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/service.py", line 913, in _get_container_create_options
    one_off=one_off)
  File "/usr/local/lib/python3.6/dist-packages/docker_compose-1.25.0.dev0-py3.6.egg/compose/service.py", line 1045, in _get_container_host_config
    cpu_rt_runtime=options.get('cpu_rt_runtime'),
  File "/usr/local/lib/python3.6/dist-packages/docker-4.0.2-py3.6.egg/docker/api/container.py", line 590, in create_host_config
    return HostConfig(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'gpus'

рдХреНрдпрд╛ рдореБрдЭреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдЬрдЧрд░ docker рдкреИрдХреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

@DarioTurchi рд╣рд╛рдБ, рдореИрдВ рд╕рдЯреАрдХ рдореБрджреНрджреЗ рд╕реЗ рдорд┐рд▓рд╛ред рд▓рдЧрддрд╛ рд╣реИ HostConfig рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рднреА рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ @рдмреНрд░реЗрдХ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
https://github.com/docker/docker-py/pull/2419

рдпрд╣рд╛рдБ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛ рд╣реИ:
https://github.com/sigurdkb/docker-py/tree/gpus_parameter

рддреЛ рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдЕрднреА рдкреИрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ https://github.com/sigurdkb/docker-py/tree/gpus_parameter рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд docker-py рдХреЗ рд╡рд┐рд░реБрджреНрдз docker-compose рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:

1) рдореЗрд░реЗ рдкрд╛рд╕ /etc/docker/daemon.json

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

рд▓реЗрдХрд┐рди runtime рдХреБрдВрдЬреА v3.x рдореЗрдВ рдЕрдм https://github.com/docker/compose/issues/6239 рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА

рдореИрдВрдиреЗ рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:

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

рдЗрд╕рд▓рд┐рдП рдореИрдВ docker-compose рдкрд░ gpu рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛:

bertserving_1    | I:VENTILATOR:[__i:_ge:222]:get devices
bertserving_1    | W:VENTILATOR:[__i:_ge:246]:no GPU available, fall back to CPU

рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЕрдм рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

+1 рдпрд╣ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдореЗрдВ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛!

рдХреЛрдИ рдПрдЯрд╛?

рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ https://docker.atlassian.net/browse/COMPOSE-82 рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛

+1 рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдлреАрдЪрд░ рд╣реЛрдЧрд╛

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ docker-compose рд▓рд┐рдП рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧреА

рдЕрднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди 2.3 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓, рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдирд╡рд┐рдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рдПрдирд╡реАрдбрд┐рдпрд╛-рдбреЙрдХрдЯрд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ /etc/docker/daemon.json рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдХреЙрдиреНрдлрд┐рдЧрд░реНрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ, рдмрд╕ рдЙрдкрд▓рдмреНрдз рд░рдирдЯрд╛рдЗрдо рдХреЗ рд░реВрдк рдореЗрдВ)ред
рдЗрд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдПрдХ рдХрдВрдкреЛрдЬ рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

version: '2.3'
services:
  test:
    image: nvidia/cuda:9.0-base
    runtime: nvidia

рдЕрднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди 2.3 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓, рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдирд╡рд┐рдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рдПрдирд╡реАрдбрд┐рдпрд╛-рдбреЙрдХрдЯрд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ /etc/docker/daemon.json рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдХреЙрдиреНрдлрд┐рдЧрд░реНрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ, рдмрд╕ рдЙрдкрд▓рдмреНрдз рд░рдирдЯрд╛рдЗрдо рдХреЗ рд░реВрдк рдореЗрдВ)ред
рдЗрд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдПрдХ рдХрдВрдкреЛрдЬ рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

version: '2.3'
services:
  test:
    image: nvidia/cuda:9.0-base
    runtime: nvidia

@arruda рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ daemon.json рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдорди рдХрд░реЗрдВрдЧреЗ?

рдЕрднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди 2.3 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓, рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдирд╡рд┐рдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рдПрдирд╡реАрдбрд┐рдпрд╛-рдбреЙрдХрдЯрд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ /etc/docker/daemon.json рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдХреЙрдиреНрдлрд┐рдЧрд░реНрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ, рдмрд╕ рдЙрдкрд▓рдмреНрдз рд░рдирдЯрд╛рдЗрдо рдХреЗ рд░реВрдк рдореЗрдВ)ред
рдЗрд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдПрдХ рдХрдВрдкреЛрдЬ рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

version: '2.3'
services:
  test:
    image: nvidia/cuda:9.0-base
    runtime: nvidia

@arruda рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ daemon.json рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдорди рдХрд░реЗрдВрдЧреЗ?

рд╣рд╛рдБ, рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:

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

рдирдорд╕реНрддреЗ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬрд┐рд╕рдореЗрдВ NVIDIA рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ (FROM) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдбреЙрдХ рдЪрд┐рддреНрд░ рдмрдирд╛рдпрд╛ рд╣реИ
nvidia / cudagl: 10.1-рд░рдирдЯрд╛рдЗрдо-ubuntu18.04

рдКрдкрд░ рджрд┐рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЗрд░реА рдЫрд╡рд┐ рдХреЛ рдПрдирд╡реАрдбрд┐рдпрд╛ / : 10.1-рд░рдирдЯрд╛рдЗрдо- ubuntu18.04 ? рдпрд╛рдиреА рдореИрдВ рдмрд╕ (FROM) рдЕрдЬрдЧрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рдерд╛
рдФрд░ рд░рдирдЯрд╛рдЗрдо рдЬреЛрдбрд╝реЗрдВ: dok-compose рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдирд╡реАрдбрд┐рдпрд╛?

рдзрдиреНрдпрд╡рд╛рдж

@rfsch рдирд╣реАрдВ, рд╡рд╣ рдЕрд▓рдЧ рдмрд╛рдд рд╣реИред рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдореЗрдВ runtime: nvidia рдбреЛрдХрд░ рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ GPU рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЖрдкрдХреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред runtime nvidia/cudagl:10.1-runtime-ubuntu18.04 CUDA рд░рдирдЯрд╛рдЗрдо рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ CUDA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ GPU (Docker рджреНрд╡рд╛рд░рд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЧрдпрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред

рдЗрд╕ рдЫрд╡рд┐ рдореЗрдВ:

Docker architecture

runtime: nvidia рд░рдирдХ / рдХрдВрдЯреЗрдирд░ рднрд╛рдЧ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред nvidia/cudagl:10.1-runtime-ubuntu18.04 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд╕реНрд╡реАрд░ рдХреЗ рдмрд╛рд╣рд░ рд╣реИ ред

рд╣рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

@ рдбреИрдирд┐рдпрд▓451 рдореИрдВ рдХреЗрд╡рд▓ рдкрд░рд┐рдзреАрдп рд░реВрдк рд╕реЗ рдкреАрдЫрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ generic_resources рдХреБрдВрдЬреА рдХреЗ рддрд╣рдд рд╣реЛрдЧрд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:

services:
  my_app:
    deploy:
      resources:
        reservations:
          generic_resources:
            - discrete_resource_spec:
                kind: 'gpu'
                value: 2

(https://github.com/docker/cli/blob/9a39a1/cli/compose/loader/full-example.yml#L71-L74 рд╕реЗ)
рдпрд╣рд╛рдБ рдбрд┐рдЬрд╝рд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: https://github.com/docker/swarmkit/blob/master/design/generic_bources.md

рдпрд╣рд╛рдБ 3.8 рд╕реНрдХреАрдорд╛ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдВрдкреЛрдЬрд╝ рдЗрд╢реНрдпреВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд░реНрдЬ рд╣реЛ рдЧрдпрд╛ рд╣реИ: # 6530

рдбреЗрдорди рдХреА рддрд░рдл gpu рдХреНрд╖рдорддрд╛ daemon.json рдпрд╛ dockerd CLI (рдкрд┐рдЫрд▓реЗ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рд░рдирдЯрд╛рдЗрдо рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рддрд░рд╣) рдореЗрдВ рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣

/usr/bin/dockerd --node-generic-resource gpu=2

рдЬреЛ рддрдм NVIDIA рдбреЙрдХрдЯрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд╣реБрдХ рдХрд░рдХреЗ рдкрдВрдЬреАрдХреГрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
https://github.com/moby/moby/blob/09d0f9/daemon/nvidia_linux.go

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╢реАрдирд░реА рдореВрд▓ рд░реВрдк рд╕реЗ рдЬрдЧрд╣ рдореЗрдВ рд╣реИ, рд╢рд╛рдпрдж рдмрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ...

рдЕрд░реЗ, @ рдЬреЙрдирдХреЛрд▓реНрдмреА , рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЕрд╕рдлрд▓ рд░рд╣рд╛:

ERROR: The Compose file './docker-compose.yml' is invalid because:
services.nvidia-smi-test.deploy.resources.reservations value Additional properties are not allowed ('generic_resources' was unexpected)

рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рдзрдиреНрдпрд╡рд╛рдж
рдбреЗрд╡рд┐рдб

Https://github.com/NVodia/nvidia-container-rimeime рдФрд░ рдбрд╛рд▓рдиреЗ рд╕реЗ nvidia-container-runtime 3.1.4.1 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рд▓рдЧрд╛рдирд╛

runtime: nvidia

рдпрд╣рд╛рдБ docker-compose 1.23.1 рдФрд░ 1.24.1 рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ https://docs.docker.com/compose/install/ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдбреЙрдЧреА рд▓реБрдХрд┐рдВрдЧ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

рдФрд░ рдЬреИрд╕реЗ рдбреЙрдХреНрдпреБрд╣рдм рд╕реЗ рдПрдирд╡реАрдбрд┐рдпрд╛ / рдХреНрдпреВрдбрдЧрд▓ / 10.1-рдмреЗрд╕ рдХрдВрдЯреЗрдирд░ред рдореИрдВрдиреЗ cuda рдФрд░ OpenGL рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдпрд╣ рд╕рднреА рдореВрд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкрд╛рд╕ рд╣реИред

рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ COMPOSE-82 рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреЛ docker stack (https://github.com/docker/cli/blob/master/cli/compose/types/types/types.go#L1566) рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

Https://github.com/NVodia/nvidia-container-rimeime рдФрд░ рдбрд╛рд▓рдиреЗ рд╕реЗ nvidia-container-runtime 3.1.4.1 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рд▓рдЧрд╛рдирд╛

runtime: nvidia

рдпрд╣рд╛рдБ docker-compose 1.23.1 рдФрд░ 1.24.1 рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ https://docs.docker.com/compose/install/ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдбреЙрдЧреА рд▓реБрдХрд┐рдВрдЧ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

рдФрд░ рдЬреИрд╕реЗ рдбреЙрдХреНрдпреБрд╣рдм рд╕реЗ рдПрдирд╡реАрдбрд┐рдпрд╛ / рдХреНрдпреВрдбрдЧрд▓ / 10.1-рдмреЗрд╕ рдХрдВрдЯреЗрдирд░ред рдореИрдВрдиреЗ cuda рдФрд░ OpenGL рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдпрд╣ рд╕рднреА рдореВрд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкрд╛рд╕ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ docker-compose.yml рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣реЗ, @ jdr- рдЪреЗрд╣рд░рд╛,

рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ nvidia-container-runtime рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ, рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдмрд╛рдж рдореЗрд░реА рдкрд░реАрдХреНрд╖рд╛ рдпрд╣рд╛рдБ рд╣реИред

version: '3.0'

services:
  nvidia-smi-test:
    runtime: nvidia
    volumes:
      - /tmp/.X11-unix:/tmp/.X11-unix 
    environment:
     - NVIDIA_VISIBLE_DEVICES=0 
     - DISPLAY
    image: vkcube

рдпрд╣ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ:

       Unsupported config option for services.nvidia-smi-test: 'runtime'

@ david-gwa рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░

runtime 3.x рдХрд╛ рдЭрдВрдбрд╛ рдХрднреА рдирд╣реАрдВ рд░рд╣рд╛ред рдпрд╣ рдХреЗрд╡рд▓ 2.x рдЯреНрд░реИрдХ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, (2.3 рдФрд░ 2.4)ред

@ рдбреЗрд╡рд┐рдб-gwa

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ docker-compose.yml рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

version: '2.3'

services:
    container:
        image: "nvidia/cudagl/10.1-base"

        runtime: "nvidia" 

        security_opt:
            - seccomp:unconfined
        privileged: true

        volumes:
            - $HOME/.Xauthority:/root/.Xauthority:rw
            - /tmp/.X11-unix:/tmp/.X11-unix:rw

        environment:
          - NVIDIA_VISIBLE_DEVICES=all

рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ @muru рдиреЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдереА, рдЪрд╛рд▓ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ, @ jdr-face, @muru ,
рдореИрдВ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭ рдЧрдпрд╛ рдХрд┐ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди v3 рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╣реИред

рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рдП: рдХрдВрдкреЛрдЬрд╝ рд╡реА 2 рдХрдВрдкреЛрдЬрд╝ рд╡реА 3 рд╕реЗ рдкреБрд░рд╛рдирд╛ рдирд╣реАрдВ рд╣реИред рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВред v3 рдХреЛ рдЭреБрдВрдб рдХреА рдУрд░ рдЧрд┐рдпрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ v2 рдирд╣реАрдВ рд╣реИред v1 рдкреБрд░рд╛рдирд╛ рд╣реИред

рдХреНрдпрд╛ рдбреЙрдХрдЯрд░ рдХреЗ рдореВрд▓ рдЬреАрдкреАрдпреВ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░-рдХрдореНрдкреЛрдЬ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЪрд░реНрдЪрд╛ рд╣реИ?

рднрд╡рд┐рд╖реНрдп рдореЗрдВ GPU рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП runtime рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред NVIDIA https://github.com/NVelia/nvidia-docker рдореЗрдВ nvidia-docker2 рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Docker 19.03 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде, nvidia-docker2 рд╕рдВрдХреБрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм NVIDIA GPUs рдХреЛ Docker рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд░рдирдЯрд╛рдЗрдо рдХреЛ рдмрджрд▓рдХрд░ GPU рд╕рдорд░реНрдерди рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдлреНрд░реИрдВрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рд╣рдо рдЗрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ docker-compose v3.x рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо docker swarm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рдмреАрдЪ рд╣рдо рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ GPU / CUDA рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Nvidia рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдПрдирд╡реАрдбрд┐рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреЛ /etc/docker/daemon.json рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛

{
    "default-runtime":"nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ GPU рдорд╢реАрдиреЛрдВ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрдВрдЯреЗрдирд░ рдПрдирд╡реАрдбрд┐рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВрдЧреЗред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЛ рд╕рдорд╛рди рдЕрд╡рд░реЛрдзрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдлреНрд░реИрдВрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рд╣рдо рдЗрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ docker-compose v3.x рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо docker swarm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рдмреАрдЪ рд╣рдо рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ GPU / CUDA рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Nvidia рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдПрдирд╡реАрдбрд┐рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреЛ /etc/docker/daemon.json рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛

{
    "default-runtime":"nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ GPU рдорд╢реАрдиреЛрдВ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрдВрдЯреЗрдирд░ рдПрдирд╡реАрдбрд┐рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВрдЧреЗред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЛ рд╕рдорд╛рди рдЕрд╡рд░реЛрдзрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╣реИрдХреА рд▓рдЧрддрд╛ рд╣реИред рдЬрд▓реНрдж рд╣реА рдкреВрд░реНрдг рдХрдореНрдкреЛрдЬрд╝-рд╡реА 3 рд╕рдорд░реНрдерди рдХреА рдЙрдореНрдореАрдж рд╣реИред :)

рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ /etc/docker/daemon.json рд╣реИ, docker рдореЗрдВ рдкреНрд░рд╡рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж> = 19.03 рдФрд░ nvidia-docker2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп nvidia-container-toolkit рдирд┐рдХрд╛рд▓рдирд╛?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, --gpus compose рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред

- рдХрдВрдкреЛрдЬ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ
рдореИрдВ рдЯреЗрдВрдХреЛрд░реЗрдлрд╝реНрд▓реЛ-рдЬреАрдкреАрдпреВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pycharm рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрджреНрдпрддрди? рдХреНрдпрд╛ рдРрд╕рд╛ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдЬрд▓реНрдж рд╣реА dog-compose рдореЗрдВ thegpus рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдЖрдк рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдпрд╣ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

рдФрд░ рдлрд┐рд░ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде COMPOSE_API_VERSION=auto docker-compose run gpu рдЪрд▓рд╛рдПрдБ:

version: '3.7'

services:
    gpu:
        image: 'nvidia/cuda:9.0-base'
        command: 'nvidia-smi'
        device_requests:
            - capabilities:
               - "gpu"

Docker 19.03.0 Beta 2 рдХреЗ рддрд╣рдд, NVIDIA GPU рдХреЛ рдирдП CLI API --gpus рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред docker / cli # 1714 рдЗрд╕ рд╕рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рдПрдХ рдмрд╕ рдЬреАрдкреАрдпреВ-рддреНрд╡рд░рд┐рдд рдбреЙрдХрдЯрд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП --gpus рд╡рд┐рдХрд▓реНрдк рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

$ docker run -it --rm --gpus all ubuntu nvidia-smi
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
f476d66f5408: Pull complete 
8882c27f669e: Pull complete 
d9af21273955: Pull complete 
f5029279ec12: Pull complete 
Digest: sha256:d26d529daa4d8567167181d9d569f2a85da3c5ecaf539cace2c6223355d69981
Status: Downloaded newer image for ubuntu:latest
Tue May  7 15:52:15 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.116                Driver Version: 390.116                   |
|-------------------------------+----------------------+----------------------+
| 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 P4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   39C    P0    22W /  75W |      0MiB /  7611MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
:~$ 

рдЖрдЬ рддрдХ, рдХрдореНрдкреЛрдЬрд╝ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ NVIDIA GPU рдХреЗ рд▓рд┐рдП рдХрдореНрдкреЛрдЬрд╝ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ can рдЖрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрд░рд╛ рд╕реАрдПрд╕рдбреАрдПрди рдмреНрд▓реЙрдЧ рдкрддрд╛: https://blog.csdn.net/u010420283/article/details/104055046

~ $ sudo apt-get install рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо
~ $ sudo vim /etc/docker/daemon.json

рдлрд┐рд░, рдЗрд╕ daemon.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЬреЛрдбрд╝реЗрдВ:

{
"рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рд░рдирдЯрд╛рдЗрдо": "рдПрдирд╡реАрдбрд┐рдпрд╛"
"рд░рдирдЯрд╛рдЗрдо": {
"рдПрдирд╡реАрдбрд┐рдпрд╛": {
"рдкрде": "/ usr / рдмрд┐рди / рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо", "
"runtimeArgs": []
}
}
}

~ $ sudo systemctl рдбреЗрдорди-рд░реАрд▓реЛрдб
~ $ sudo systemctl рдкреБрдирд░рд╛рд░рдВрдн docker

рдЙрди рдЕрдирдЪрд╛рд╣реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рдмрддрд╛рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрдирд╡реАрдбрд┐рдпрд╛ -рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ /etc/docker/deamon.json рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП runtime: nvidia " рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднреВрдорд┐рдХрд╛ рд╣реИред

https://github.com/NVIDIA/ansible-role-nvidia-docker

(рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рдХреЗрд╡рд▓ рдЙрдмрдВрдЯреВ рдФрд░ рдЖрд░рдПрдЪрдИрдПрд▓ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рдореИрдВ рдЗрд╕реЗ рдбреЗрдмрд┐рдпрди рдкрд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ)

рдлрд┐рд░ рдЕрдкрдиреЗ docker-compose.yml рдореЗрдВ :

version: "2.4"
services:
  test:
    image: "nvidia/cuda:10.2-runtime-ubuntu18.04"
    command: "nvidia-smi"

gpu рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрдзрд┐рдХрд╛рд░рд┐рдХ 3.x рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рд╣рдореЗрдВ рдЭреБрдВрдб рдкрд░ рдЬрд░реВрд░рдд рд╣реИ :)

рдХреНрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ device_requests рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ docker-py рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЬреЛ рдХрд┐ --gpus рдЕрдиреБрд╡рд╛рдж рд╣реИред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЧрдП рд╣реИрдВ (https://github.com/docker/docker-py/pull/2419, https://github.com/docker/docker-py/pull/2465, https: / /github.com/docker/docker-py/pull/2471) рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЕрдиреБрдЪрд░ рдХреА рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИред # 7124 рдХрдВрдкреЛрдЬрд╝ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/docker/docker-py/pull/2471 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХрд┐рд╕реА рд╕реЗ рдХреЛрдИ рдЬрд╡рд╛рдм рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ # 7124 рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкреАрдЖрд░ рдХреЛ рдЕрдзрд┐рдХ рдЖрдЬреНрдЮрд╛рдХрд╛рд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдХрдо рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдирд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдХрд┐ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ ...

рдХреГрдкрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВ, рдХрдорд╛рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛!

рдХреГрдкрдпрд╛, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝реЗрдВ! рдореИрдВ рдкреБрд░рд╛рдиреЗ рдПрдирд╡реАрдбрд┐рдпрд╛-рдбреЛрдХреЗ 2 рд╕реЗ рдЕрдзрд┐рдХ рдЦреБрд╢ рдерд╛, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдбреЗрдорди.рдЬреЙрди рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдпрд╣ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдХреГрдкрдпрд╛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: /

рдореИрдВ рднреА рдвреЗрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛ ... рд╣рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!

рдореБрдЭреЗ рд╕реАрдкреАрдпреВ рдФрд░ рдЬреАрдкреАрдпреВ рджреЛрдиреЛрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдирдЯрд╛рдЗрдо рд╣реИрдХ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рди рдХрд░реЗред рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬрдм рдпрд╣ рд░рдЪрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛? рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░реИрдВрдбрдо рдлрд╝реНрд▓реИрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рд╣реИ рдирд╛? рдЗрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреА рдкрдбрд╝ рд░рд╣реА рд╣реИ - рд╣рд╛рдБ!

рдореБрдЭреЗ рд╕реАрдкреАрдпреВ рдФрд░ рдЬреАрдкреАрдпреВ рджреЛрдиреЛрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдирдЯрд╛рдЗрдо рд╣реИрдХ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рди рдХрд░реЗред рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬрдм рдпрд╣ рд░рдЪрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛? рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░реИрдВрдбрдо рдлрд╝реНрд▓реИрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рд╣реИ рдирд╛? рдЗрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреА рдкрдбрд╝ рд░рд╣реА рд╣реИ - рд╣рд╛рдБ!

рдЖрдк рдЗрд╕реЗ docker cli (docker run --gpu ....) рджреНрд╡рд╛рд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреА рдЯреНрд░рд┐рдХ рд╣реИ (рдкреНрд░реЙрдХреНрд╕реА рдЬреЛрдбрд╝рдХрд░, рдЭреБрдВрдб рдкрд░ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП)ред рд╣рдо рд╕рднреА рдЗрд╕реЗ рдЭреБрдВрдб рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЙрдХрдЯрд░ рд╕реЗрд╡рд╛ рдХрдорд╛рдВрдб (рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ) рдФрд░ рди рд╣реА рд░рдЪрдирд╛ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@dottgonzo рд╕рд╣реА рд╣реИ ;-)ред рдореБрдЭреЗ рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рднрдпрд╛рдирдХ рдФрд░ рдЧреИрд░-рдкреЛрд░реНрдЯреЗрдмрд▓ рддрд░реАрдХрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рд╡рд╛рд▓ред

COMPOSE_API_VERSION=auto docker-compose run gpu

@ggregoire рд╣рдо рдХрд╣рд╛рдБ рдЪрд▓рд╛рддреЗ рд╣реИрдВ: COMPOSE_API_VERSION = рдСрдЯреЛ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рд░рди рдЧрд╛рдкреВ?

рдЕрдкрдиреЗ рд╢реЗрд▓ рд╕реЗ @ рдЬреЛрд╣реЛрд▓реЗрд░ рдмрд╕ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред

рдЕрднреА рд╣рдо рд╣рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдгрдп рд▓реЗ рд░рд╣реЗ рд╣реИрдВ рдЕрдЧрд░ рд╣рдореЗрдВ 3.x рдлреАрдЪрд░реНрд╕ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдпрд╛ рдЕрдЧрд░ рд╣рдо docker-compose 2.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ GPU рд╡рд┐рдХрд▓реНрдк рдЕрднреА рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИред рдЬреАрдкреАрдпреВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕реЗ рдорд▓реНрдЯреАрд╕реНрдЯреЗрдЬ рд▓рдХреНрд╖реНрдп рдЪрд▓рд╛рдиреЗ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝реЗрдВ!

рдореИрдВ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП "рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк" рдлрд╝реАрд▓реНрдб рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ, рдЬрд╣рд╛рдБ рд╣рдо рдмрд╕ --gpus=all рдЬреИрд╕реЗ рдбреЙрдХ рд╕реНрдЯрд╛рд░реНрдЯ / рд░рди рдХрдорд╛рдВрдб рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЕрднреА рддрдХ / рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдирд╡реАрдирддрдо docker рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣реИрдВред рдЗрд╕ рддрд░рд╣, рд░рдЪрдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреИрдЪ-рдЕрдк рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛, рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рдирдП рдЕрднреА рддрдХ рд╕рдорд░реНрдерд┐рдд рдбреЙрдХ рдлрд╝реАрдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрднреА рднреА рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдЭреБрдВрдб рдкрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рдкреЛрд░реНрдХ рдбреЛрдХрд░ рдЭреБрдВрдб рд╣реЛрдЧрд╛?

@sebastianfelipe рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдк
рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
docker service create --generic-resource "gpu=1" --replicas 10 \ --name sparkWorker <image_name> \"service ssh start && \ /opt/spark/bin/spark-class org.apache.spark.deploy.worker.Worker spark://<spark_master_ip>:7077\"

рдХреБрдЫ рдЗрд╕ рддрд░рд╣

docker stack deploy --compose-file docker-compose.yml stackdemo

@sebastianfelipe рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдк
рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
docker service create --generic-resource "gpu=1" --replicas 10 \ --name sparkWorker <image_name> \"service ssh start && \ /opt/spark/bin/spark-class org.apache.spark.deploy.worker.Worker spark://<spark_master_ip>:7077\"

рдХреБрдЫ рдЗрд╕ рддрд░рд╣

docker stack deploy --compose-file docker-compose.yml stackdemo

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЙрдХрд░ рдЭреБрдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдмрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рд╣реЗред рдзрдиреНрдпрд╡рд╛рдж!

рдХреЗрд╡рд▓ рдбреЙрдХрд░ рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП 2.x

рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рдВрдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ docker-compose 3+ рдХреЗ рд▓рд┐рдП nvidia-docker gpu рд╕рдорд░реНрдерди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ

рдпрд╣ рдореВрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рдж рд╕реЗ рд▓рдЧрднрдЧ рдПрдХ рд╡рд░реНрд╖ рд╣реИ !! рджреЗрд░реА рдХреНрдпреЛрдВ ?? рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ ??

ping @KlaasH @ulyssessouza @Goryudyuma @ рдХреНрд░рд┐рд╕-рдХреНрд░реЛрдиред рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди?

рдЖрдк рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдпрд╣ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • рдЗрд╕ PR рд╕реЗ docker-py рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: docker / docker-py # 2471
  • рдЗрд╕ PR рд╕реЗ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: # 7124

рдФрд░ рдлрд┐рд░ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде COMPOSE_API_VERSION=auto docker-compose run gpu рдЪрд▓рд╛рдПрдБ:

version: '3.7'

services:
    gpu:
        image: 'nvidia/cuda:9.0-base'
        command: 'nvidia-smi'
        device_requests:
            - capabilities:
               - "gpu"

рдЖрдк рдореЗрдВ рд╕реЗ рдЬреЛ рд▓реЛрдЧ рдореЗрд░реЗ рдЬреИрд╕реЗ рд╣реА рдЕрдзреАрд░ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдПрдХ рдЖрд╕рд╛рди pip install рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:

pip install git+https://github.com/docker/docker-py.git@refs/pull/2471/merge
pip install git+https://github.com/docker/compose.git@refs/pull/7124/merge
pip install python-dotenv

рд╡рд┐рд╢рд╛рд▓ рдХреБрджреЛрд╕ @yoanisgil рдХреЛ !
рдЕрднреА рднреА рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреИрдЪ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рднреА рдкреАрдЖрд░рдПрд╕ рдЬрдЧрд╣ рдХреЗ рд╕рд╛рде, рдпрд╣ рдХрд┐рд╕реА рднреА рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

ping @KlaasH @ulyssessouza @Goryudyuma @ рдХреНрд░рд┐рд╕-рдХреНрд░реЛрдиред рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди?

рдирд╣реАрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдХреНрдпреЛрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░ рдПрдХ рдЕрдкрдбреЗрдЯ рд╣реИред

рд╣рд╛рдБ, рдЕрдм рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИ ... рд╡реЗ docker-py рдореЗрдВ рд╡рд┐рд▓рдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ...

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрдВрдкреЛрдЬрд╝ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИрдВред рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдЗрд░рд╛рджреЗ рд╕реЗ рдХрдореНрдкреЛрдЬрд╝ рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЦреЛрд▓рд╛ рд╣реИред рдЖрдк https://github.com/compose-spec рдкрд░ рдпреБрдХреНрддрд┐ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ

рд╣рдо рдЬреЛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ, рд╣рдо рдХрд▓реНрдкрдирд╛ рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрдЧрд╛рдореА рдХрдВрдкреЛрдЬ рд╕рдореБрджрд╛рдп рдмреИрдардХреЛрдВ ( рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ) рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: docker run --gpus all nvidia/cudagl:9.2-runtime-centos7 nvidia-smi
рдпрд╣ рдирд╣реАрдВ рд╣реИ: docker run --runtime=nvidia nvidia/cudagl:9.2-runtime-centos7 nvidia-smi

рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

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

рдЕрдкрдиреЗ /etc/docker/daemon.json --runtime=nvidia рд▓рд┐рдП рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ ред

Dockerd рдЗрд╕ daemon.json рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреНрд░рд╛рдЗрд╕реНрдЯ, рдЗрд╕рдореЗрдВ рдХрдИ рд╕рд╛рд▓ рд▓рдЧреЗрдВрдЧреЗ: @

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: docker run --gpus all nvidia/cudagl:9.2-runtime-centos7 nvidia-smi
@deniswal : рд╣рд╛рдВ, рд╣рдо рдпрд╣ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд░рдЪрдирд╛ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВред

@ рдХреНрд░рд┐рд╕-рдХреНрд░реЛрди: рдореИрдВ рднреНрд░рдорд┐рдд рд╣реВрдВ: рдпрд╣ рдкреВрд░реНрд╡ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЪрд▓рд╛рдирд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдПрдХ рд╣реА рднреМрддрд┐рдХ рдмреЙрдХреНрд╕ рдкрд░ CPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@ vk1z AFAIK рдЗрд╕ рддрд░рд╣ рдмрджрд▓рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдмреИрдХрдПрдВрдб рдкрд░ рдкреНрд▓рдВрдмрд┐рдВрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреБрдЫ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП @miriaford рдиреЗ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдореЗрд░реЗ рдореМрдЬреВрджрд╛ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рдореИрдВ 16GB рдХреЗ рд╕рд╛рде рдПрдХ i7 рд╣реИ RAM, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП GPU рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж!

@ рдХреНрд░рд┐рд╕-рдХреНрд░реЛрди: рдлрд┐рд░ рд╕реЗ, рдореИрдВ рд╕рд╣реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд░рдирдЯрд╛рдЗрдо: 2.4 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рд░рдЪрдирд╛ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛? рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдерд╛ред рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдЕрдм рдмрд╛рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рднреА рдХреЛ 3.x рдкрд░ рд╡реИрд╕реЗ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдХреНрдпрд╛ рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд▓реНрдкрдирд╛ рдХреЗ рд░реЗрдкреЛ рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл, рд╕рд╣реА?

рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд░рдирдЯрд╛рдЗрдо: рдкреИрд░рд╛рдореАрдЯрд░ 2.4 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рд░рдЪрдирд╛ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛? рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдерд╛ред

рд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ред рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╣рдо рдЕрдкрдиреА рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ runtime: nvidia рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рдореЗрдВ 3.x рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рд╡рд╣рд╛рдБ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред

рд╣рд╛рдп, рдХреГрдкрдпрд╛, рдХреГрдкрдпрд╛, рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВред
рдпрд╣ рдорд┐рд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╛рдердорд┐рдХрддрд╛ -20 рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдлрд┐рд░ рд╕реЗ, рдореИрдВ рд╕рд╣реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд░рдирдЯрд╛рдЗрдо: рдкреИрд░рд╛рдореАрдЯрд░ 2.4 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рд░рдЪрдирд╛ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛? рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдерд╛ред рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдЕрдм рдмрд╛рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рднреА рдХреЛ 3.x рдкрд░ рд╡реИрд╕реЗ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдпрд╣рд╛рдВ рдирд╣реАрдВ рдерд╛ рдЬрдм рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддреЛ рдореИрдВ 100% рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреНрдпреЛрдВ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NVIDIA рд░рдирдЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдо рдХрд▓реНрдкрдирд╛ рдХреЗ рдПрдХрд▓ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдЗрд░рд╛рджреЗ рд╕реЗ рдпрд╣рд╛рдВ рдЦреБрд▓реЗ рдореЗрдВ рдХрдВрдкреЛрдЬ v3 рдХрд▓реНрдкрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм v3 рдореЗрдВ рдХреБрдЫ v2 рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

runtime рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХрдВрдкреЛрдЬрд╝ рдХреА рдпреБрдХреНрддрд┐ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХрд▓ рдиреЛрдб рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╣рдо рдХреБрдЫ рдРрд╕рд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рдХрд┐ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрднрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ: GPU, TPU, рдЬреЛ рднреА рдЕрдЧрд▓рд╛ рдЖрддрд╛ рд╣реИ) рдФрд░ рдлрд┐рд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЛ рдХрд╛рд░реНрдпрднрд╛рд░ рдПрдХ рдиреЛрдб рдХреЛ рд╕реМрдВрдкрдиреЗ рджреЗрдВ рдЬреЛ рдЙрд╕ рдХреНрд╖рдорддрд╛ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдЪрд░реНрдЪрд╛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд╛рдпрдерди рдбреЛрдХрд░ рдХрдВрдкреЛрдЬ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред

@ рдХреНрд░рд┐рд╕-рдХреНрд░реЛрди: рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЖрдкрдХреЗ рдмрдпрд╛рди рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд╢реЙрд░реНрдЯ рдЯрд░реНрдо рд╣реИрдХреНрд╕ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдпрдж рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЧрд▓рдд рддрд░реАрдХрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдХрд┐рдирд╛рд░реЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкреНрд░рд╕рд╛рд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдмрддрд╛рддреЗ рд╣реИрдВ, TPU (Google), VPU (Intel) рдФрд░ рдПрдЖрд░рдПрдо GPU рдкрд╛рдИ рдкрд░ред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдФрд░ рдкреВрд░реА рдХрд╣рд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЖрдЬ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдЬреИрд╕реЗ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдХреНрдпреВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ GPUs рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрдпрд╛рди рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЬреЛ рдХрд┐ рдпрд╣ рд╕рдм рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@ рдХреНрд░рд┐рд╕-рдХреНрд░реЛрди: рдХреГрдкрдпрд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд┐рд╢рди рдХреЗ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦреЗрдВред рдореИрдВ рдЙрд╕ рдореБрджреНрджреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрдм рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рд╣рдо рд╕реАрдзреЗ docker run рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк ( extra_docker_run_args рдЬреИрд╕рд╛ рдХреБрдЫ) рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рди рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░реЗрдЧрд╛, рдмрд▓реНрдХрд┐ рднрд╡рд┐рд╖реНрдп рдХрд╛ рдкреНрд░рдорд╛рдг рднреА рд╣реЛрдЧрд╛: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдбреЙрдХрдЯрд░ "XPU", тАЛтАЛ"YPU", рдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИ?

рдЕрдЧрд░ рд╣рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдПрдХ рд▓рдВрдмреА рдмреИрдХ-рдПрдВрдб-рдбрд┐рд╕реНрдХрд╢рди рдЪрд░реНрдЪрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рдлреАрдЪрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ docker-compose рдФрд░ docker рдЕрдкрдбреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЕрддреНрдпрдзрд┐рдХ рдЕрдХреНрд╖рдорддрд╛ рдФрд░ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╡рд┐рд▓рдВрдм (рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рднреНрд░рдо) рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рд╕рдорд░реНрдерди рддрд░реНрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рднрд╡рд┐рд╖реНрдп рдХреА рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЖрд╡рд░реНрддрдХ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рд░рд╛рд╣рдд рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@miriaford рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд░реНрдмрд╛рдз рдмреВрдБрдж рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реЛрдиреЗ рдХреА рд░рдЪрдирд╛ рдзрд╛рд░рдгрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдкреБрд░рд╛рдиреЗ рд░рдирдЯрд╛рдЗрдо рдЯреИрдЧ рдиреЗ рдХрдо рд╕реЗ рдХрдо рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рдерд╛ред рдЬрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдбреВрдХрд░ рдЯреНрд░реЗрдВрдб (docker-apps) рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЙрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рддреИрдирд╛рддреА рдФрд░ рдХрдард┐рди рд╣реЛ рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмреНрд▓реЙрдмреНрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдХрдВрдкреЛрдЬрд╝ рдФрд░ рдбреЙрдХ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕ рдкрд░ рд▓реЛрдЧ рдирд┐рд░реНрднрд░ рд╣реИрдВ (рднрд▓реЗ рд╣реА рдпрд╣ рдПрдХ рдмрдбрд╝реА рд░рд┐рд▓реАрдЬрд╝ рдереА) рдХрд╛рдлреА рдХреЛрд╖реЗрд░ рдирд╣реАрдВ рд╣реИред

@ vk1z рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ - compose рдФрд░ docker рдмреАрдЪ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╕рд┐рдВрдХ рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕реЗ рддрдВрддреНрд░ рдХреЛ рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдмреАрдЪ рд╣рдо рднреА рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЧрд╣рд░реА рд╣реИрдХрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдиреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рддрд░реАрдХрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдпрджрд┐ рддрд░реНрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВ? рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рдПрдХ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдо рд╕реЗ рдХрдо _much_ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рд╣реИ рдирд╛? https://github.com/docker/compose/issues/6691#issuecomment -616984053

@miriaford docker - рдирд╣реАрдВ рдмреБрд▓рд╛рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ docker_py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ docker daemon рдХреЗ рд▓рд┐рдП http API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рддреЛ рдХреЛрдИ "рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд docker run " рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИред рдбреЙрдХрдЯрд░ рд╕реАрдПрд▓рдЖрдИ рдПрдХ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реИ, рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рд╕рдВрдкрд░реНрдХ рдХрд╛ рдПрдкреАрдЖрдИ рдмрд┐рдВрджреБ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЙрдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рджреЛ рдореБрдЦреНрдп рдХреЙрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЬреЛ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреБрдХрдбрд╝реЗ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рднреА рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдПрдкреАрдЖрдИ рдЬреНрдЮрд╛рди рд╣реИ, рдЬреЛ рд▓реЗрддрд╛ рд╣реИ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЬреИрд╕реЗ рд╣рдо docker CLI рдЬрд╛рдирддреЗ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ docker_py рдХреЙрд▓реНрд╕ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд░реНрдЧрди рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬрд┐рддрдирд╛ рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ, рд╕рд┐рд╡рд╛рдп рдЪреБрдирд┐рдВрджрд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВред

рдЪреАрдЬреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрднреА-рдХрднреА docker_py рд▓рд╛рдЗрдмреНрд░реЗрд░реА API рдХреЗ рдкреАрдЫреЗ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднреА рдЬреЛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╡рд╣ рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╕рднреА, extra_docker_run_args рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

@andyneff рдЖрдкрдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдбреЙрдХрд░ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рдордХрд╛рдЬ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБред рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рддреЛ 4 рдПрдкреАрдЖрдИ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдирдП рдлреАрдЪрд░ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  1. рдбреЙрдХрд░ рд╕реЙрдХреЗрдЯ рдПрдкреАрдЖрдИ
  2. docker_py рдЬреЛ рд╕реЙрдХреЗрдЯ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдЬрдЧрд░ рд╕реАрдорд╛рдВрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
  3. рдбреЙрдХрд░ рд╕реАрдПрд▓рдЖрдИ (рдбреЙрдХрдЯрд░ рдЯреВрд▓рдХрд┐рди рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдкрд░рд┐рдЪрд┐рдд рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ)
  4. рдбреЙрдХрд░-рдХрдореНрдкреЛрдЬрд╝ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреЛ рдбреЙрдХ рд╕реЙрдХреЗрдЯ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ

рдпрд╣ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ: рдХреЛрдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЕрд░реНрдз-рд╕реНрд╡рдЪрд╛рд▓рд┐рдд) рд╕рд┐рдВрдХрд┐рдВрдЧ рддрдВрддреНрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? 4 рдПрдкреАрдЖрдИ рдореЗрдВ рдирдП рдлреАрдЪрд░ рдЕрдкрдбреЗрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рдирд╛ рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг, рд╡рд┐рд▓рдВрдм-рдкреНрд░рд╡рдг рдФрд░ рдХрдиреНрдлреНрдпреВрдЬ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ ...

рдкреБрдирд╢реНрдЪ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдирд╛ рдПрдХ _simple_ рдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдереЛрдбрд╝реЗ рд╕реЗ рдмрдЪреНрдЪреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ ... рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ ...

  • Docker рд╕реЙрдХреЗрдЯ docker рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ API рд╣реИред рдпрд╣ рдЕрдХреНрд╕рд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЙрдХреЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреАрд╕реАрдкреА (рдпрд╛ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп, рдореИрдВ socat рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ)
  • docker CLI рдЙрд╕ API рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рднрдпрд╛рдирдХ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ

    • рдбреЙрдХрд░ рдПрдкреАрдЖрдИ рдФрд░ рд╕реАрдПрд▓рдЖрдИ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рдордп рд╕рд┐рдВрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рд╕реАрдПрд▓рдЖрдИ docker рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХрд╛ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХрд╛ рдирд╛рдЧрд░рд┐рдХ рд╣реИ)

  • Docker_py рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЙрд╕ API рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдПрдХ рднрдпрд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдиреНрдп рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдЖрдк рдЗрди рд╕рднреА HTTP рдХреЙрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, рдФрд░ рдЕрдкрдиреЗ рдмрд╛рд▓реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗред

    • рд╣рд╛рд▓рд╛рдБрдХрд┐ docker_py рдХреЛ рдПрдХ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдиреЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ docker API рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ (рд╕реАрдорд┐рдд рд╕рдВрд╕рд╛рдзрди) рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝ рджреА рдЧрдИ рд╣реИрдВред

  • рдХрдореНрдкреЛрдЬрд╝ docker_py рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрди рд╕рднреА рднрдпрд╛рдирдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ (рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореБрджреНрджреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд)

    • рд╣рд╛рд▓рд╛рдВрдХрд┐, рд░рдЪрдирд╛рдХрд╛рд░ docker_py рддрдХ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдЬреЛ рдореИрдВ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкрдХрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рдореИрдВ рд╕рд┐рд░реНрдл рдХреБрдЫ рдореЗрдВ рд╣реВрдВ)

рддреЛ рд╣рд╛рдБ, рдпрд╣ рдЬрд╛рддрд╛ рд╣реИ:

  • "рдХрдВрдкреЛрдЬрд╝ рдпрдорд▓ + рдХрдореНрдкреЛрдЬрд╝ рдЖрд░реНрдЧреНрд╕" -> "рдбреЙрдХрдЯрд░_рдкреА" -> "рдбреЙрдХрдЯрд░_рдкреА"
  • рдФрд░ CLI рдЗрд╕рдХрд╛ рдХреЛрдИ рднреА рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ, (рдФрд░ рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдХрд┐ рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ)

рдореИрдВ docker_py рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмреЛрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рд░рдЪрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реАрдорд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдШрдВрдЯреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдкрд╛рдЧрд▓ рдкрд╛рдЧрд▓ docker рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬреЛ docker рд▓рдЧрд╛рддрд╛рд░ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдбреЙрдХрдЯрд░ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдФрд░ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЬрдЧрд░ рд╕рдорд░реНрдерди рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХрд╛ рдирд╛рдЧрд░рд┐рдХ рдирд╣реАрдВ рд╣реИ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдбреЙрдХ рдХреА рдЫрддрд░реА рдХреЗ рдиреАрдЪреЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЧрд┐рддреБрдм рд╕рдВрдЧрдарди рд╕реНрдЯреИрдВрдб рдмрд┐рдВрджреБ рд╕реЗред


рддреЛ рдпрд╣ рд╕рдм рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ... рдореИрдВ рднреА рдмрд░рд╛рдмрд░ --gpus рд╕рдорд░реНрдерди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдкреБрд░рд╛рдиреЗ runtime: nvidia рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ "рдПрдХ" рдЪрд▓рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рджреЗрдЧрд╛ рдЖрдЧреЗ docker- рд░рдЪрдирд╛ рдореЗрдВ 2.x.

@andyneff FYI рдореЗрдВ рдирд╡реАрдирддрдо https://www.docker.com/blog/faster-builds-in-compose-thanks-to-buildkit-support/

@andyneff рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЕрд╡рд▓реЛрдХрди рд╣реИ! рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдзрдиреНрдпрд╡рд╛рдж

@ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ "рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХреИрд╕реЗ рдЗрд╕ рд╕рдм рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдЧрд╛" рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛

рдореИрдВ рдЬреЛ рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рдирдП рдбреЙрдХрдЯрд░-рдРрдк рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрдВрддрд░рд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрдо рд╕реЗ рдХрдо рдЙрд╕ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рдФрд░ рдбреЙрдХрдЯрд░ рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрд╡рд░реЛрдзрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ: рдкрд░реНрдпрд╛рдкреНрдд рдЕрдЬрдЧрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде рдирд╣реАрдВ? рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

рддреЛ Docker рдЭреБрдВрдб рдХреИрд╕реЗ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдЬреЛ @andyneff рдЕрднреА рд╡рд░реНрдгрд┐рдд рд╣реИ? рдЭреБрдВрдб рд░рдЪрдирд╛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рд╕рдВрд╕реНрдХрд░рдг 3 ("рд░рдЪрдирд╛" рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд?) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди docker рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдорд╛рдлреА рдпрджрд┐ рдпрд╣ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдСрдл-рдЯреЙрдкрд┐рдХ рд╣реИред рдореИрдВрдиреЗ рдмрд▓реНрдХрд┐ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЯреНрд░реИрдХ рдЦреЛ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдЭреБрдВрдб рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рдмрддрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдХрдВрдкреЛрдЬрд╝-рдлрд╛рдЗрд▓ рдХреЗ рд╡реА 2 рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЭреБрдВрдб рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП v3 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд┐рдЯ рд╕реАрдПрд▓рдЖрдИ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рдХрд▓реНрдкрдирд╛ рдореЗрдВред рдбреЙрдХ рдЭреБрдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрднреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВред

рдУрд╣ рдЭреБрдВрдб, рд╡рд╣ рдЬреЛ рджреВрд░ рд╣реЛ рдЧрдпрд╛ ... (рдореБрдЭрд╕реЗ)ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ # 6239 рд╣реИ рдЬреЛ рдПрдХ рдмреАрдУрдЯреА рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред :( рдХрд┐рд╕реА рдиреЗ # 6240 рдореЗрдВ рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ ...

@miriaford , рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд╣реИ! # 6642 ?! (рдпрд╣ рд╕рд┐рд░реНрдл v3 рдХреЗ рд▓рд┐рдП рд╣реИ ???)


рдЗрд╕рд▓рд┐рдП рдЭреБрдВрдб рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг, рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдЖрдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЭреБрдВрдб рдиреЛрдбреНрд╕ рдкрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдбреЙрдХрд░ рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рд╕рд╛рдорд╛рдиреНрдп рд░рди рдХреЗ рд░реВрдк рдореЗрдВ рдЭреБрдВрдб рдЪрд▓рд╛рдиреЗ рдкрд░ рд╕рдорд╛рди рд╡рд┐рдХрд▓реНрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд░рдирдЯрд╛рдЗрдо рд╣рд╛рде рд╕реЗ рдЗрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдЕрдХреНрд╕рд░ v3 (рдЭреБрдВрдб рд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдг) рдореЗрдВ рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ v2 (рдЧреИрд░-рдЭреБрдВрдб рд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдг) рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рдкрдврд╝рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╣рдо рд╕рднреА рдЬреЗрд▓реАрдлрд┐рди w / рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЬрдм рддрдХ рдЖрдк рд▓реЛрдЧ рдЗрд╕реЗ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд▓реЗрддреЗ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕реЗрд╡рд╛ рдирд╣реАрдВ рдХрд╣ рджреЗрддрд╛, 3.x рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред

рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП 2.4 рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдлрд┐рд░ рдЖрдк рдЬреЗрд▓реАрдлрд┐рди, рдИрдЬрд╝реА рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рддреЛ рджреЛрд╕реНрддреЛрдВ рдЖрдЗрдпреЗ рдЗрд╕ рдкрд░ рдИрдЯреАрдП, 1 рд╕рд╛рд▓, 2 рд╕рд╛рд▓?

@KlaasH @ulyssessouza @Goryudyuma @ chris-crone рд╣рд╛рдп, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╕рдорд░реНрдерди "docker-py" рдореЗрдВ рдЧрд╛рдпрдм рдерд╛, рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рдЕрдм рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ docker-compose.yml рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╛рдиреА рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рдПрдХ рдирдП рд╕реНрдХреАрдорд╛ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреНрдпрд╛ рдРрд╕рд╛ рдХреЛрдИ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

@fababbir рдореИрдВ COMPOSE_DOCKER_CLI_BUILD рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдареАрдХ рд╣реИред docker run рддрд░реНрдХреЛрдВ рдХреА рдордирдорд╛рдиреА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИред

@ рд▓рд┐рдЧ рдЖрдк рдХреИрд╕реЗ рд╕реМрджрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ GPU рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?

@ рд▓рд┐рдЧ AFAICS docker run cli рдХреЗ рдмрдЬрд╛рдп docker-py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдПрдХ рдордирдорд╛рдирд╛ docker run рддрд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ docker-py рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рди рдХрд░реЗрдВред

рд░реЗрдлрд░реА: https://github.com/docker/compose/issues/6691#issuecomment -585199425

рдпрд╣ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд░рдЪрдирд╛ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХрдо рдХрд░рддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рдзреНрдпрд╛рди рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдпрд╣ рдкреБрд░рд╛рдиреЗ docker- рд░рдЪрдирд╛ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдХрд╛рдлреА рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИред
рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдордирдорд╛рдиреЗ docker --run рддрд░реНрдХреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ? рддрдм - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП -gpus docker рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рджрд╛рд░реНрд╢рдирд┐рдХ рдпрд╛ рддрдХрдиреАрдХреА рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╣рд╛рде рди рдЦреАрдВрдЪрдирд╛ рдФрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдорди рдХреЛ рдбрдЧрдордЧрд╛рддрд╛ рд╣реИред

@ рд▓рд┐рдЧ рдЖрдк рдХреИрд╕реЗ рд╕реМрджрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ GPU рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?

рдЦреИрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ NVIDIA_VISIBLE_DEVICES рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдХрд┐ рдирд╣реАрдВ?

рдпрд╣ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд░рдЪрдирд╛ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХрдо рдХрд░рддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рдзреНрдпрд╛рди рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдпрд╣ рдкреБрд░рд╛рдиреЗ docker- рд░рдЪрдирд╛ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдХрд╛рдлреА рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИред
рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдордирдорд╛рдиреЗ docker --run рддрд░реНрдХреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ? рддрдм - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП -gpus docker рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ docker --run args рдкрд╛рд╕ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред compose рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ docker рдХреЛ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛, рдмрд▓реНрдХрд┐ docker-py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рджрд╛рд░реНрд╢рдирд┐рдХ рдпрд╛ рддрдХрдиреАрдХреА рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╣рд╛рде рди рдЦреАрдВрдЪрдирд╛ рдФрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдорди рдХреЛ рдбрдЧрдордЧрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреАрдЖрд░ рдЦреБрд▓рд╛ рд╣реИ: https://github.com/docker/compose/pull/7124ред рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ "рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдХреЛ рдЙрд╕ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ"ред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ docker рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд▓реНрдкрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИ , рд╣рдореЗрдВ 2.4 рдХрдореНрдкреЛрдЬрд╝ 2.4 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд╣рд▓реЗ рдХреА рд╕рдВрдЧрддрддрд╛ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ nvidia рд░рдирдЯрд╛рдЗрдо рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯреАрдкреАрдпреВ рдпрд╛ рдЕрдиреНрдп рддреНрд╡рд░рдХ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - рдЬреЛ рдмрд╣реБрдд рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ рд▓реЗрдХрд┐рди рдЬреЛ рд▓реЛрдЧ (рдорд╣рдВрдЧреЗ) рдПрдирд╡реАрдбрд┐рдпрд╛ рдЬреАрдкреАрдпреВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рддреЛ рдмрд╕ рдПрдХ рд╣рд░реЗ рд░рдВрдЧ рдХреА рдкреАрдЖрд░ рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, https://github.com/docker/docker-py/pull/2471 рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП dok-py рдореЗрдВ

рд╣рд╛рдБ! Do-py рдкрд░ рдкреАрдЖрд░ рдХреЛ рдордВрдЬреВрд░реА рджреЗ рджреА рдЧрдИ рд╣реИ! https://github.com/docker/docker-py/pull/2471
рдпрд╣рд╛рдБ рдЕрдЧрд▓рд╛ рдХрджрдо рдХреНрдпрд╛ рд╣реИ?

рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдпрд╣ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдореЗрдВ рдПрдирд╡реАрдбрд┐рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛

https://github.com/docker/docker-py/pull/2471 рдХреЛ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рдЙрд╕ docker / docker-py # 2471 рдХреЛ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо docker-py рдХреЛ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ @yoangil рдХреЗ рдХреВрд▓ [PR] (https://github.com/docker/compose/pull/7124) (Kudos!) рдХреЗ рдмрд╛рдж рд╕реЗ рдХрдВрдкреЛрдЬрд╝ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рддреЛ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рджрд┐рди рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкреАрдЖрд░ рд╕реЗ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛ рдпрд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП:

pip install git+https://github.com/docker/docker-py.git
pip install git+https://github.com/yoanisgil/compose.git@device-requests

рдлрд┐рд░ рдЕрдкрдиреА рд░рдЪрдирд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред (рд╕реНрд░реЛрдд: рдЯрд┐рдкреНрдкрдгреА ):

рдФрд░ рдлрд┐рд░ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде COMPOSE_API_VERSION=auto docker-compose run gpu рдЪрд▓рд╛рдПрдБ:

version: '3.7'

services:
    gpu:
        image: 'nvidia/cuda:9.0-base'
        command: 'nvidia-smi'
        device_requests:
            - capabilities:
               - "gpu"

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЭреБрдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреАред рдХреНрдпрд╛ # thereрезреирек рдХреЛ рд╡рд┐рджреНрд░реЛрд╣ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдкреАрдЖрд░ рд╣реИ рдЬреЛ рдирдП docker-py рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

рд╣рд╛рдп рд╡рд╣рд╛рдБ @bkakilli ,

рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЛ рдЖрдЬрдорд╛рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдкрдиреЗ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИ

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.analysis: 'device_requests'

_analysis рдореЗрд░реЗ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдирд╛рдо рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ_

рдореИрдВрдиреЗ рдЕрдкрдирд╛ docker-compose.yml рдмрджрд▓рд╛:

version: '2.3'

services:
    analysis:
        container_name: analysis
        image: analysis:${TAG}
        runtime: nvidia
        restart: always
        ports:
            - "8000:80"

рд╕реЗрд╡рд╛:

version: '3.7'

services:
    analysis:
        container_name: analysis
        image: analysis:${TAG}
        device_requests:
          - capabilities:
            - "gpu"
        restart: always
        ports:
            - "8000:80"

рдХреНрдпрд╛ рджреЛрдиреЛрдВ pip install git+ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ? рдпрд╛ рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рд╣реИ?

@frgfm рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╕рд╣реА рд▓рд┐рдВрдХ рд╕реЗ рдбреЙрдХ -рдкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдиреЗ рдпреЛрдирд┐рд╢рд┐рд╕рдЧрд┐рд▓ рдХреЗ рдХрд╛рдВрдЯреЗ (рдФрд░ рд╢рд╛рдЦрд╛) рдХреЗ рдмрдЬрд╛рдп рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рдЕрдкрдиреЗ рд░реЗрдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

pip install git+https://github.com/yoanisgil/compose.git@device-requests

рдЖрдк рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --upgrade рдкрд░рдо рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рдЖрднрд╛рд╕реА рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рд╕рдВрджреЗрд╣ рд╣реЛрддрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╣реЛ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ рдЗрд╕реЗ "рд▓рд┐рдирдХреНрд╕" рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛: https://docs.docker.com/compose/install/ред рдореИрдВ рдЖрдкрдХреЛ "рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдХрд▓реНрдк" рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдФрд░ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ (рд▓реЗрдХрд┐рди рдКрдкрд░ рдкрд╛рдЗрдк рд╕реЗрдЯрд┐рдВрдЧ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред PyPI рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░реЗрдВ)ред

рдирдорд╕реНрддреЗ!
рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╢реБрдХреНрд░рд┐рдпрд╛ред рдореИрдВ рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ @bkakilli рдФрд░ docker-compose build рдХрд╛рдо рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЬрдм docker-compose up рд░рд╣рд╛ рдерд╛ рддреЛ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:
docker.errors.InvalidVersion: device_requests param is not supported in API versions < 1.40

рдореЗрд░рд╛ docker_compose.yml рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

version: '3.7'

networks:
  isolation-network:
    driver: bridge

services:
 li_t5_service:
    build: .
    ports:
      - "${GRAPH_QL_API_PORT}:5001"
    device_requests:
      - capabilities:
        - "gpu"
    environment:
      - SSH_PRIVATE_KEY=${SSH_PRIVATE_KEY}
      - PYTHONUNBUFFERED=${PYTHONUNBUFFERED}
    networks: 
      - isolation-network

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж!

@ugmSorcero рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ COMPOSE_API_VERSION=1.40 рд╕реЗрдЯ рдХрд░реЗрдВ рдлрд┐рд░ рдЕрдкрдиреА рдЖрдЬреНрдЮрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБ

@ugmSorcero рдЖрдкрдиреЗ рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рдерд╛? @EpicWink @bkakilli рдореИрдВ рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реЗ рдмрддрд╛рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА device_requests param is not supported in API versions < 1.40 рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪрд░ рдХреЛ 1.40 рдкрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ

рджрд┐рдП рдЧрдП рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП

version: "3.7"
services:
  spam:
    image: nvidia/cuda:10.1-cudnn7-runtime
    command: nvidia-smi
    device_requests:
      - capabilities:
          - gpu

рд▓рд┐рдирдХреНрд╕ рдкрд░ рдмрд╛рд╢ рдореЗрдВ рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ docker-compose рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирд┐рдореНрди рдЖрджреЗрд╢ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ:

COMPOSE_API_VERSION=1.40 docker-compose up

рдирд┐рдореНрди рдЖрджреЗрд╢ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:

docker-compose up

рдЗрд╕рдореЗрдВ рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ:

ERROR: for tmp_spam_1  device_requests param is not supported in API versions < 1.40
...
docker.errors.InvalidVersion: device_requests param is not supported in API versions < 1.40

@EpicWink рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдпрд╣ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реБрдЖ рдХрд┐ docker-compose up рдХреЛ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ 2 рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛, рдЬрд╣рд╛рдВ рдкрд╣рд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ COMPOSE_API_VERSION рдЕрд▓рдЧ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ред рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рдЪрд▓рд╛рдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ :)

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рдЕрдЧрд░ рдореИрдВ COMPOSE_API_VERSION=1.40 docker-compose run nvidiatest рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ nvidia-smi рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдЧрд░ рдореИрдВ рд╕реАрдзреЗ рдЫрд╡рд┐ рд╕реЗ рдЪрд▓рддрд╛ рд╣реВрдВ рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

docker- рд░рдЪрдирд╛ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ:

nvidiatest:
    image: nvidia/cuda:10.0-base
    device_requests:
      - capabilities:
        - gpu
    command: nvidia-smi

рдпрджрд┐ рдореИрдВ рдЕрдкрдирд╛ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрдЕрдк рдЪрд▓рд╛рддрд╛ рд╣реВрдВ (рджреЛрдиреЛрдВ рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг рдСрдЯреЛ рдФрд░ 1.40) рддреЛ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

COMPOSE_API_VERSION=auto docker-compose -f docker-compose.yml -f docker-compose.local.yml run nvidiatest
Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"nvidia-smi\": executable file not found in $PATH": unknown

рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рдУрд╡рд░рд░рд╛рдЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ? рдЕрдЧрд░ рдореИрдВ рд╕рд┐рд░реНрдл рдбреЙрдХрд░ рдХреЗ рд╕рд╛рде рдХреНрдпреВрдбрд╛ рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ nvidia-smi рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ:

docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
Mon Aug 24 11:40:04 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      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  GeForce RTX 2070    Off  | 00000000:29:00.0  On |                  N/A |
|  0%   46C    P8    19W / 175W |    427MiB /  7974MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

рдореИрдВрдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХреНрд╕ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж git рд╕реЗ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рдж docker-compose рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:

pip3 show --verbose docker-compose
Name: docker-compose
Version: 1.26.0.dev0
Summary: Multi-container orchestration for Docker
Home-page: https://www.docker.com/
Author: Docker, Inc.
Author-email: None
License: Apache License 2.0
Location: /home/jurugu/.local/lib/python3.8/site-packages
Requires: docopt, docker, requests, PyYAML, texttable, websocket-client, six, dockerpty, jsonschema, cached-property
Required-by:
Metadata-Version: 2.1
Installer: pip
Classifiers:
  Development Status :: 5 - Production/Stable
  Environment :: Console
  Intended Audience :: Developers
  License :: OSI Approved :: Apache Software License
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.4
  Programming Language :: Python :: 3.6
  Programming Language :: Python :: 3.7
Entry-points:
  [console_scripts]
  docker-compose = compose.cli.main:main

рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ? рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@jjugui рдпрд╣ рдСрдл-рдЯреЙрдкрд┐рдХ рдмрди рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЖрдкрдХреЗ рдореБрджреНрджреЗ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред рдорджрдж рдирд╣реАрдВ рдХрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ

@ рдИрдкрд┐рдХрд╡рд┐рдВрдХ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд┐рд╖рдп рд╕реЗ рднрдЯрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ :)ред рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реВрдБ рддреЛ рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп PR рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рд╣рдо PR рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП device-requests рдмреНрд░рд╛рдВрдЪ рдбрд┐рдмрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЬрдм рдкреАрдЖрд░ рдЕрдЯрдХ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ # 7124 рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ master рд╢рд╛рдЦрд╛ рд╕реЗ рдореИрдЪ рдХреА рдирд┐рд░реНрднрд░рддрд╛, рдЖрджрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ - https://github.com/beehiveai/compose рдЖрдк pip install git+https://github.com/beehiveai/compose.git рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ docker-compose.yml 3.8 рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓реЗрдВ:

version: "3.8"
services:
  gpu-test:
    image: nvidia/cuda:10.2-runtime
    command: nvidia-smi
    device_requests:
      - capabilities:
          - gpu

рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗрдВ-рдХрд▓реНрдкрдирд╛ рд╢рд╛рд╕рди рдмреИрдардХ рдкрд░ рдХрд▓ рдЪрд░реНрдЪрд╛ рдХреА , рд╣рдордиреЗ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдХреБрдЫ # 7124 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЬреЛ рдХреЗ рдХрд░реАрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ generic_resouces рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз deploy рдЕрдиреБрднрд╛рдЧред

@ndeloof рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ! рдпрджрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рд▓рд┐рдВрдХ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕ рдкрд░ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЧрд╣рд░реА рд╕реАрдЦрдиреЗ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП GPU рдХрд╛ рд╕рдорд░реНрдерди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

@ndeloof рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ, рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдореЗрдВ рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рд╕рдорд┐рддрд┐ рдХреЛ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, 6 рдорд╣реАрдиреЗ, рдПрдХ рд╡рд░реНрд╖?

+1

+1

@visheratin рдХрд┐рд╕реА рднреА рдореМрдХрд╛ рдЖрдк рдЕрдкрдиреЗ рд╕реБрдзрд╛рд░ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдХрдИ рдХрдореНрдкреЛрдЬрд┐рдЯ yml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдХрд░реЗ? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмреЗрд╕ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рд╣реИред рдПрдХ рдЧреИрд░-рдПрдирд╡реАрдбрд┐рдпрд╛ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХрд┐ рдореИрдВ рдПрдХ GPU рд╣реЛрдиреЗ рдкрд░ рдПрдирд╡реАрдбрд┐рдпрд╛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдареАрдХ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдореИрдВ "" рдХреЗ рд╕рд╛рде рдПрдХрд╛рдзрд┐рдХ рдХрдВрдкреЛрдЬрд╝ рдпреЛрдЬ рдлрд╛рдЗрд▓реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реВрдВред f "," device_requests "рдлрд╝реАрд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИред

@ рдЕрд╕рдВрд╕рд╛рдзрдХ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ "рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ"? рдХреНрдпрд╛ рд╕рднреА рд░рдЪрдирд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 3.8 рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдП?

рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рдЕрдк рдХреЗ рд╕рд╛рде --scale рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдХрдВрдкреЛрдЬрд╝ / рд╕рд░реНрд╡рд┐рд╕рд╣реЛрдо рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ?

рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "/ usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди / docker- рд░рдЪрдирд╛", рдкрдВрдХреНрддрд┐ 11, рдореЗрдВ
load_entry_point ('docker-compose == 1.27.0.dev0', 'рдХрдВрд╕реЛрд▓_ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕', 'docker-compose') ()
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/cli/main.py", рдкрдВрдХреНрддрд┐ 67, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
рдЖрджреЗрд╢ ()
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/cli/main.py", рдкрдВрдХреНрддрд┐ 123, perform_command рдореЗрдВ
рд╣реИрдВрдбрд▓рд░ (рдХрдорд╛рдВрдб, рдХрдорд╛рдВрдб_ рджрддреНрддрдХ)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/cli/main.py", рдкрдВрдХреНрддрд┐ 1067, рдКрдкрд░
to_attach = up (рдЧрд▓рдд)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/cli/main.py", рдкрдВрдХреНрддрд┐ 1063, рдКрдкрд░
CLI = native_builder,
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/project.py", рдкрдВрдХреНрддрд┐ 648, рдКрдкрд░
get_deps,
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/parallel.py", рдкрдВрдХреНрддрд┐ 108, рд╕рдорд╛рдирд╛рдВрддрд░_рдПрдХреНрд╕рдЪреНрдпреВрдЯ рдореЗрдВ
error_to_reraise рдмрдврд╝рд╛рдПрдВ
рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/parallel.py", рд▓рд╛рдЗрди 206
рдкрд░рд┐рдгрд╛рдо = рджреБрд░реНрдЧрдВрдз (obj)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/project.py", рдкрдВрдХреНрддрд┐ 634, рдореЗрдВ
override_options = override_options,
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рдкрдВрдХреНрддрд┐ 579, execute_convergence_plan рдореЗрдВ
renew_anonymous_volumes,
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рдкрдВрдХреНрддрд┐ 509, _execute_convergence_recreate рдореЗрдВ
рдкреИрдорд╛рдирд╛ - рд▓реЗрди (рдХрдВрдЯреЗрдирд░), рдЕрд▓рдЧ, рд╢реБрд░реВ
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рдкрдВрдХреНрддрд┐ 479, _execute_convergence_create рдореЗрдВ
"рдмрдирд╛рдирд╛"
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/parallel.py", рдкрдВрдХреНрддрд┐ 108, рд╕рдорд╛рдирд╛рдВрддрд░_рдПрдХреНрд╕рдЪреНрдпреВрдЯ рдореЗрдВ
error_to_reraise рдмрдврд╝рд╛рдПрдВ
рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/parallel.py", рд▓рд╛рдЗрди 206
рдкрд░рд┐рдгрд╛рдо = рджреБрд░реНрдЧрдВрдз (obj)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рдкрдВрдХреНрддрд┐ 477, рдореЗрдВ
lambda service_name: create_and_start (self, service_name.number),
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рдкрдВрдХреНрддрд┐ 456, create_and_start рдореЗрдВ
рдХрдВрдЯреЗрдирд░ = рд╕реЗрд╡рд╛.рдХрд╛рд░реНрдп_рдХрдВрдЯреЗрдирд░ (рд╕рдВрдЦреНрдпрд╛ = рдПрди, рд╢рд╛рдВрдд = рд╕рддреНрдп)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рдкрдВрдХреНрддрд┐ 333, create_container рдореЗрдВ
previous_container = previous_container,
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рдкрдВрдХреНрддрд┐ 936, _get_container_create_options рдореЗрдВ
one_off = one_off)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рд▓рд╛рдЗрди 1014, _get_container_host_config рдореЗрдВ
рддрддреНрд╡_рдкреНрд▓рд┐рдЯ (',') рддрддреНрд╡ рдХреЗ рд▓рд┐рдП device_request ['рдХреНрд╖рдорддрд╛рдУрдВ']]
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/compose/service.py", рдкрдВрдХреНрддрд┐ 1014, рдореЗрдВ
рддрддреНрд╡_рдкреНрд▓рд┐рдЯ (',') рддрддреНрд╡ рдХреЗ рд▓рд┐рдП device_request ['рдХреНрд╖рдорддрд╛рдУрдВ']]
рдЧреБрдг: 'рд╕реВрдЪреА' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ 'рд╡рд┐рднрд╛рдЬрди' рдирд╣реАрдВ рд╣реИ

рдЖрдЧреЗ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ - thescale рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд╛рд╕ рдбрд┐рд╡рд╛рдЗрд╕ [requests ['рдХреНрд╖рдорддрд╛рдУрдВ'] рдХреЗ рд░реВрдк рдореЗрдВ ['gpu'] рд╣реИред рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, device_request ['рдХреНрд╖рдорддрд╛рдУрдВ'] рдХреЗ рдмрдЬрд╛рдп [['gpu']] рджрд┐рдЦрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХреВрдВ рдФрд░ рдХрдореНрдкреЛрдЬрд╝ / рд╕рд░реНрд╡рд┐рд╕ рдПрд░реЛ рдореЗрдВ рд▓рд╛рдЗрди 1010 рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХреВрдВред

`` `
device_request рдХреЗ рд▓рд┐рдП device_requests рдореЗрдВ:
рдЕрдЧрд░ 'рдХреНрд╖рдорддрд╛рдУрдВ' рдореЗрдВ device_request рдирд╣реАрдВ:
рдЬрд╛рд░реА рд░рдЦреЗрдВ
рдпрджрд┐ рдкреНрд░рдХрд╛рд░ (device_request ['рдХреНрд╖рдорддрд╛рдУрдВ'] [0]) == рд╕реВрдЪреА:
device_request ['рдХреНрд╖рдорддрд╛рдУрдВ'] = [
element_squit ('ред') рддрддреНрд╡ рдХреЗ рд▓рд┐рдП device_request ['рдХреНрд╖рдорддрд╛рдУрдВ'] [0]]
рдЕрдиреНрдп:
device_request ['рдХреНрд╖рдорддрд╛рдУрдВ'] = [
element_squit ('ред') рддрддреНрд╡ рдХреЗ рд▓рд┐рдП device_request ['рдХреНрд╖рдорддрд╛рдУрдВ']]

`` ``

@ рдЕрд╕рдВрд╕рд╛рдзрдХ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ "рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ"? рдХреНрдпрд╛ рд╕рднреА рд░рдЪрдирд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 3.8 рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдП?

@visheratin рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВ, рдХреНрдпрд╛ рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдХреА рдЙрдореНрдореАрдж рдХрд░рдирд╛ рдЧрд▓рдд рд╣реВрдВ?

рдбреЛрдХрд░-compose.nogpu.yml:

version: '3.8'

services:
  df:
    build: miniconda-image.Dockerfile

рдбреЛрдХрд░-compose.gpu.yml:

version: '3.8'

services:
  df:
    build: nvidia-image.Dockerfile
    device_requests:
      - capabilities:
          - gpu

рдХреЗрд╡рд▓ nogpu.yml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

$ docker-compose -f docker-compose.nogpu.yml config
services:
  df:
    build:
      context: /home/jerry/gpu-test/miniconda-image.Dockerfile
version: '3'

рдХреЗрд╡рд▓ gpu.yml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

$ docker-compose -f docker-compose.gpu.yml config
services:
  df:
    build:
      context: /home/jerry/gpu-test/nvidia-image.Dockerfile
    device_requests:
    - capabilities:
      - gpu
version: '3'

рдЪреЗрди рдХреЙрдиреНрдлрд┐рдЧ ymls рдПрдХ рдЧреИрд░-рдЬреАрдкреАрдпреВ yml (рдиреЛрдЯ ... рд░рдирдЯрд╛рдЗрдо рдЧреБрдо) рдХреЗ рд╕рд╛рде рд╢реБрд░реВ:

$ docker-compose -f docker-compose.nogpu.yml -f docker-compose.gpu.yml config
services:
  df:
    build:
      context: /home/jerry/gpu-test/nvidia-image.Dockerfile
version: '3'

рдЕрдкреЗрдХреНрд╖рд┐рдд рдЙрддреНрдкрд╛рджрди:

$ docker-compose -f docker-compose.nogpu.yml -f docker-compose.gpu.yml config
services:
  df:
    build:
      context: /home/jerry/gpu-test/nvidia-image.Dockerfile
    device_requests:
      - capabilities:
          - gpu
version: '3'

(рдЬрд╛рд╣рд┐рд░ рд╣реИ рдореИрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдорд╛рдорд▓рд╛ рд╣реИред)

@jlaule @proximous рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╡рд┐рд╖рдп рдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдХрд╛рдВрдЯреЗ рд╡рд╛рд▓реЗ рд░реЗрдкреЛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рдмрдирд╛рдПрдБ, рдореИрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛрдиреЗ рдкрд░

рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдореИрдВ рдХрдВрдЯреЗрдирд░ рд░рди рд╕рдордп рдХреЗ рд░реВрдк рдореЗрдВ рдбреЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 30mins рдореЗрдВ GPU рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде K3S (Kubernetes рдХрд╛ рдПрдЬ рд╕рдВрд╕реНрдХрд░рдг) рд╕реЗрдЯрдЕрдк рдХрд░рддрд╛ рд╣реВрдВ (рдпрд╛рдиреА рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП --docker рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред рдПрдирд╡реАрдбрд┐рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/NVodia/k8s-device-plugin рдХрд╛ рдкрд╛рд▓рди
рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗ!

@ рдИрдкрд┐рдХрд╡рд┐рдВрдХ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд┐рд╖рдп рд╕реЗ рднрдЯрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ :)ред рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реВрдБ рддреЛ рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛?

рдЕрдм "/ usr / bin / nvidia-container-runtime" рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рдирд╣реАрдВ рд╣реИред рдореБрджреНрджрд╛ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдпрд╣рд╛рдБ рд╕реНрдерд╛рдкрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдПрдирд╡реАрдбрд┐рдпрд╛-рдбреЙрдХ 2 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

ive рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдФрд░ рд╕реЛрдЪрд╛ рдЖрдИрдбреА рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рдореБрдЭреЗ рдбреЙрдХ рд╕реНрдЯреИрдХ рдХреА рддреИрдирд╛рддреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдпрд╣ рдирд╣реАрдВ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред docker рд░рдЪрдирд╛ рдореИрдВ docker рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╣реА рдФрд░ рд╕реНрдЯреИрдХ рдХреА рддреИрдирд╛рддреА рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рддреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░рди рдЯрд╛рдЗрдо рдкреНрд░реЛ рдбрд┐рд╡рд╛рдЗрд╕ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреЛ рдореЗрд░реЗ рдбреЙрдХ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдбреЗрдореЙрди рдореЗрдВ рдЬреЛрдбрд╝рд╛:

{ "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } }, "default-runtime": "nvidia", "node-generic-resources": [ "NVIDIA-GPU=0" ] }

рдЖрдк GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ- {gpu рдЧрд╛рдЗрдб рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ}
рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╕рд╛рди рдерд╛ред рдПрдирд╡реА рдХрдВрдЯреЗрдирд░ рдЯреВрд▓рдХрд┐рдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдкрд╛рдЗрдк рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рддреИрдирд╛рдд рд╣реИ рдФрд░ рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдмрд╣реБрдд @ @ididuck рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ , рдмрд╕ рдореЗрд░реА рдЦреБрдж рдХреА рдорд╢реАрди (Ubuntu 20.04, docker CE 19.03.8) рдкрд░ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП: рдЕрдкрдиреЗ рдбреЙрдХ рдбреЗрдореЙрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред

@pommedeterresautee рдЖрд╣ im рдЗрддрдирд╛ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛! рд░реАрд▓реЛрдб рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рд╣реЛрдЧрд╛ 3 рд╕рдкреНрддрд╛рд╣ рдХреЗ рдмрд╛рдж рдиреЙрди рд╕реНрдЯреЙрдк рдбреЙрдХрд┐рдВрдЧ рдЗрдо рд╕реБрдВрджрд░ рдЪрдХрд░рд╛ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ ..

@haviduck : рдзрдиреНрдпрд╡рд╛рдж! рдЕрдВрдд рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдЙрдкрд╛рдп рдЬреЛ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдЖрджрд┐ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╣рд╛рд░ рдорд╛рди рд▓реАред рдлрд┐рд░ рдпрд╣ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ Plex рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрдиреЗ 2 рд╕реЗрдВрдЯ рдЬреЛрдбрд╝реВрдВрдЧрд╛ ... рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдкреЛрд╕реНрдЯ рдкрдврд╝реА рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рд╕рд░рд▓ рдерд╛ред

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛: (рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдХрдо рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ - рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ ...)
рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рез.реи ,.рек, рекрежрелреирекрез реп реи рдХрд╛ рдирд┐рд░реНрдорд╛рдг

  1. рдбреЙрдХ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдореЗрдВ рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  2. docker рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░: рдЯрд╛рдЗрдк рдХрд░реЗрдВ
    nvidia-smi рдФрд░ рджрд╛рдИрдВ рдУрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ CUDA рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
    image
  3. docker рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░: рдкреНрд░рдХрд╛рд░: (рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде cuda рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓реЗрдВ)
    docker run --rm --gpus all nvidia / cuda: 10.1-рдмреЗрд╕ nvidia-smi
    рдЬрдм рдЖрдк рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдПрдирд╡реАрдбрд┐рдпрд╛-рдПрд╕рдПрдордЖрдИ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╡рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП
  4. рдлрд╝рд╛рдЗрд▓ рдореЗрдВ /etc/docker/daemon.json рдХреЛ рдЖрдкрдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
    "рд░рдирдЯрд╛рдЗрдо": {"рдПрдирд╡реАрдбрд┐рдпрд╛": {"рдкрде": "/ рдпреВрдПрд╕рдЖрд░ / рдмрд┐рди / рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо", "рд░рдирдЯрд╛рдЗрдо рдПрдЧреНрд╕": []}
  5. рдЕрдкрдиреЗ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ YML рдореЗрдВ рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:
    рд░рдирдЯрд╛рдЗрдо: рдПрдирд╡реАрдбрд┐рдпрд╛

рдмрд╕ !
YML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЗ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдореЗрдВ GPU рд╕рдкреЛрд░реНрдЯ рд╣реЛрдЧрд╛

5. in your docker-compose YML you should add:
   **runtime: nvidia**

рдЕрд░реЗ рд▓рдбрд╝рдХрд╛, рдпрд╣ рдкреВрд░рд╛ рдзрд╛рдЧрд╛ рд╕рдВрд╕реНрдХрд░рдг 3 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдирд╣реАрдВ рд╣реИред

рд░рд┐рд▓реАрдЬрд╝ 1.27.0+ рдореЗрдВ v2 / v3 рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдм рдХрд╣реАрдВ рднреА runtime рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рддреНрд╡рд░рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рднреА рдЙрддрд░рд╛ (https://github.com/compose-spec/compose-spec/pull/100) рд╣рд╛рд▓рд╛рдВрдХрд┐ docker-compose рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрдиреЗ 2 рд╕реЗрдВрдЯ рдЬреЛрдбрд╝реВрдВрдЧрд╛ ... рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдкреЛрд╕реНрдЯ рдкрдврд╝реА рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рд╕рд░рд▓ рдерд╛ред

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛: (рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдХрдо рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ - рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ ...)
рдбреЙрдХ -рдХрдореНрдкреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг 4052419 рдХрд╛ рдирд┐рд░реНрдорд╛рдг

  1. рдбреЙрдХ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдореЗрдВ рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  2. docker рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░: рдЯрд╛рдЗрдк рдХрд░реЗрдВ
    nvidia-smi рдФрд░ рджрд╛рдИрдВ рдУрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ CUDA рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
    image
  3. docker рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░: рдкреНрд░рдХрд╛рд░: (рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде cuda рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓реЗрдВ)
    docker run --rm --gpus all nvidia / cuda: 10.1-рдмреЗрд╕ nvidia-smi
    рдЬрдм рдЖрдк рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдПрдирд╡реАрдбрд┐рдпрд╛-рдПрд╕рдПрдордЖрдИ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╡рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП
  4. рдлрд╝рд╛рдЗрд▓ рдореЗрдВ /etc/docker/daemon.json рдХреЛ рдЖрдкрдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
    "рд░рдирдЯрд╛рдЗрдо": {"рдПрдирд╡реАрдбрд┐рдпрд╛": {"рдкрде": "/ рдпреВрдПрд╕рдЖрд░ / рдмрд┐рди / рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо", "рд░рдирдЯрд╛рдЗрдо рдПрдЧреНрд╕": []}
  5. рдЕрдкрдиреЗ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ YML рдореЗрдВ рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:
    рд░рдирдЯрд╛рдЗрдо: рдПрдирд╡реАрдбрд┐рдпрд╛

рдмрд╕ !
YML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЗ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдореЗрдВ GPU рд╕рдкреЛрд░реНрдЯ рд╣реЛрдЧрд╛

FYI рдХрд░реЗрдВ, cuda рд╕рдВрд╕реНрдХрд░рдг рдЖрдк nvidia-smi рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, nvidia cuda рдбреНрд░рд╛рдЗрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЗ nvidia рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ aka (рд╡реЗ рдЗрд╕реЗ cuda рднреА рдХрд╣рддреЗ рд╣реИрдВ, рдЬреЛ рднреНрд░рдорд┐рдд рд╣реИ)ред рдбреЙрдХ рдЫрд╡рд┐ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛, рдЙрджрд╛ nvidia/cuda:10.1-base nvidia-smi рдПрдирд╡рд┐рдбрд┐рдпрд╛ рдЯреВрд▓рдХрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдлрд┐рд░ рд╕реЗ, рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдирдВрдмрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬрд╛рдирд╡рд░реЛрдВ)ред

рдбреНрд░рд╛рдЗрд╡рд░ рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХрд┐рд╕реА рднреА nvidia/cuda:<version>-base nvidia-smi рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ <version> рдбреНрд░рд╛рдЗрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд░рд╛рдмрд░ рдЫреЛрдЯрд╛ рдпрд╛ рдмрд░рд╛рдмрд░ рди рд╣реЛред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ: https://stackoverflow.com/questions/53422407/different-cuda-versions-shown-by-nvcc-and-nvidia-smi

рдореБрдЭреЗ рдПрдЖрд░рдПрдо-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдбреЙрдХрдЯрд░ рдХрдВрдкреЛрдЬрд╝ 1.27.4 рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред

pip install docker-compose
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: docker-compose in /usr/local/lib/python3.6/dist-packages (1.26.2)

рд╣рд╛рдп @collabnix!

pip --version рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реИ?

рдкрд╛рдЗрдерди 2 рдХреЗ рд▓рд┐рдП 1.27 рдЧрд┐рд░рд╛ рд╕рдорд░реНрдерди рд▓рд┐рдЦреЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рдХрд┐ рдЖрдк 1.27.x рд░рд┐рд▓реАрдЬрд╝ рди рджреЗрдЦреЗрдВ рдпрджрд┐ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд╛рдпрдерди 2 рд╣реИред

@collabnix рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, pip install --upgrade docker-compose

рдЕрдм рдореИрдВ рез.реи ..рек рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдкрд╛рдЗрдк рдЕрдкрдЧреНрд░реЗрдб рдиреЗ рдЪрд╛рд▓ рдЪрд▓реАред рдзрдиреНрдпрд╡рд╛рдж @ рдЕрдХреНрд╢рд░реНрдмрди рдФрд░ @ рдХреНрд░рд┐рд╕-рдХреНрд░реЛрди
рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЕрддреАрдд рдореЗрдВ рдХрд╛рдо рдХреА рдЧрдИ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЧрд▓ рд╣реИ рдФрд░ рдЬреЛ рдХрд┐ рдкрд╛рдпрдерди 2.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЙрдиреНрдирдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

1.27.4 рдЕрдкрдЧреНрд░реЗрдб рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред
(1.19.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдмрд╛рдж рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди)

$ cat /etc/docker/daemon.json 
{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
version: '3.5'

    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all       
    image: 'detectme'
    ipc: 'host'
    tty: true
    stdin_open: true
$ sudo docker-compose up -d --build
ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.engine: 'runtime'
$ docker-compose --version
docker-compose version 1.17.1, build unknown
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo rm /usr/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

$ sudo docker-compose up -d --build
рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛рдПрдВред
рд╣реЛрд╕реНрдЯ рдХрдВрдкреНрдпреВрдЯрд░ рдЪреЗрдХ gpu рдкрд░ nvidia-smi рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@ Bttung-2020
@PyCod
рдЕрдЧрд░ рдореИрдВ dokcer-nvidia-devel (рд░рдирдЯрд╛рдЗрдо рдирд╣реАрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ: nvidia / cuda: 10.1-cudnn7-devel-ubuntu18.04 docker -hub рдореЗрдВ
рдпрд╣ рдХрд╛рдо рд╣реИ? рдореБрдЭреЗ docker-compose.yaml рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
4 / 5 - 1 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jmmills picture jmmills  ┬╖  146рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matteo-bombelli picture matteo-bombelli  ┬╖  204рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

devinrsmith picture devinrsmith  ┬╖  100рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thaJeztah picture thaJeztah  ┬╖  274рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bfirsh picture bfirsh  ┬╖  244рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ