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 рдХреЗ рд▓рд┐рдП рдХрдореНрдкреЛрдЬрд╝ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╣реИред
рдпрд╣ рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрдм (рдЕрдм) рд╡рд┐рд░рд╛рд╕рдд 'рдПрдирд╡реАрдбрд┐рдпрд╛ рд░рдирдЯрд╛рдЗрдо' рдбреЙрдХрд░ 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 рджреНрд╡рд╛рд░рд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЧрдпрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред
рдЗрд╕ рдЫрд╡рд┐ рдореЗрдВ:
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 рдПрдкреАрдЖрдИ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдирдП рдлреАрдЪрд░ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
docker_py
рдЬреЛ рд╕реЙрдХреЗрдЯ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдЬрдЧрд░ рд╕реАрдорд╛рдВрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИрдпрд╣ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ: рдХреЛрдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЕрд░реНрдз-рд╕реНрд╡рдЪрд╛рд▓рд┐рдд) рд╕рд┐рдВрдХрд┐рдВрдЧ рддрдВрддреНрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? 4 рдПрдкреАрдЖрдИ рдореЗрдВ рдирдП рдлреАрдЪрд░ рдЕрдкрдбреЗрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рдирд╛ рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг, рд╡рд┐рд▓рдВрдм-рдкреНрд░рд╡рдг рдФрд░ рдХрдиреНрдлреНрдпреВрдЬ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ ...
рдкреБрдирд╢реНрдЪ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдирд╛ рдПрдХ _simple_ рдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдереЛрдбрд╝реЗ рд╕реЗ рдмрдЪреНрдЪреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ ... рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ ...
socat
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ)docker
CLI рдЙрд╕ API рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рднрдпрд╛рдирдХ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИрддреЛ рд╣рд╛рдБ, рдпрд╣ рдЬрд╛рддрд╛ рд╣реИ:
рдореИрдВ 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 рд╕реЗрдВрдЯ рдЬреЛрдбрд╝реВрдВрдЧрд╛ ... рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдкреЛрд╕реНрдЯ рдкрдврд╝реА рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рд╕рд░рд▓ рдерд╛ред
рдЗрд╕рдиреЗ рдореЗрд░реЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛: (рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдХрдо рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ - рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ ...)
рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рез.реи ,.рек, рекрежрелреирекрез реп реи рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рдмрд╕ !
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 рдХрд╛ рдирд┐рд░реНрдорд╛рдг
- рдбреЙрдХ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдореЗрдВ рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
- docker рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░: рдЯрд╛рдЗрдк рдХрд░реЗрдВ
nvidia-smi рдФрд░ рджрд╛рдИрдВ рдУрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ CUDA рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ- docker рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░: рдкреНрд░рдХрд╛рд░: (рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде cuda рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓реЗрдВ)
docker run --rm --gpus all nvidia / cuda: 10.1-рдмреЗрд╕ nvidia-smi
рдЬрдм рдЖрдк рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдПрдирд╡реАрдбрд┐рдпрд╛-рдПрд╕рдПрдордЖрдИ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╡рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП- рдлрд╝рд╛рдЗрд▓ рдореЗрдВ /etc/docker/daemon.json рдХреЛ рдЖрдкрдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
"рд░рдирдЯрд╛рдЗрдо": {"рдПрдирд╡реАрдбрд┐рдпрд╛": {"рдкрде": "/ рдпреВрдПрд╕рдЖрд░ / рдмрд┐рди / рдПрдирд╡реАрдбрд┐рдпрд╛-рдХрдВрдЯреЗрдирд░-рд░рдирдЯрд╛рдЗрдо", "рд░рдирдЯрд╛рдЗрдо рдПрдЧреНрд╕": []}- рдЕрдкрдиреЗ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ 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 рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рдПрдХ рддрддреНрдХрд╛рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!