Blame
1aa411 | Mayekkuzu | 2025-04-03 17:56:01 | 1 | # Docker |
2 | ||||
cbcdf9 | Mayekkuzu | 2025-04-03 18:00:31 | 3 |  |
4 | ||||
5 | **Docker** - платформа для разработки, доставки и запуска контейнерных приложений. Именно что приложений. Потому как отличие от виртуальной машины - отсутствие надобности под приложение разворачивать целую виртуальную машину. К примеру Zabbix можно установить внутри виртуальной машины, а можно запустить несколько контейнеров (Zabbix Server + PostgreSQL) и бонусом еще веб-сервер Nginx с сайтиком. И все это будет в рамках одной виртуалки/bare metal тачки. Сами приложения называются образами, найти их можно на DockerHub если готовые и изготовить самому, если есть необходимость. Одни плюсы. |
|||
1aa411 | Mayekkuzu | 2025-04-03 17:56:01 | 6 | |
7 | Из минусов - конечно же пользователи которые суют все на свете в докер без особых на то причин, но это уже другое психическое отклонение. Или же - подготовка приложений к работе в K8s. В любом случае в условиях малых ресурсов организация инфраструктуры в docker-контейнерах позволяет более компактно и щадяще к ресурсам собрать свои сервисы и особо не замарачиваться. |
|||
8 | ||||
cbcdf9 | Mayekkuzu | 2025-04-03 18:00:31 | 9 | Работает исключительно на nix-системах. Наличие версии Docker-Desktop для Windows подразумевает установку Linux в Hyper-V/WSL. На MacOS таких приколов, очевидно, нет. |
10 | ||||
1aa411 | Mayekkuzu | 2025-04-03 17:56:01 | 11 | ## Установка Docker (или Docker-Compose) в Ubuntu/Debian |
12 | ||||
13 | Официальная документация гласит: |
|||
14 | ||||
15 | ```bash |
|||
16 | sudo apt-get update |
|||
17 | sudo apt-get install ca-certificates curl |
|||
18 | sudo install -m 0755 -d /etc/apt/keyrings |
|||
19 | sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc |
|||
20 | sudo chmod a+r /etc/apt/keyrings/docker.asc |
|||
21 | ||||
22 | # Add the repository to Apt sources: |
|||
23 | echo \ |
|||
24 | "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ |
|||
25 | $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ |
|||
26 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
|||
27 | sudo apt-get update |
|||
28 | ``` |
|||
29 | ||||
30 | Не официальная (лично моя). Просто ставим пакет docker-compose. Из минусов - может быть старая версия, если принципиально нужна самая новая, см. выше: |
|||
31 | ```bash |
|||
32 | sudo apt install docker-compose |
|||
33 | ``` |
|||
34 | Таким образом быстро и без пердолинга мы установили докер |
|||
35 | ||||
36 | ## Даем пользователю права запуска docker |
|||
37 | ||||
38 | По умолчанию docker без sudo вы не запустите. Для решения проблемы пишем: |
|||
39 | ```bash |
|||
40 | sudo usermod -aG docker username |
|||
41 | ``` |
|||
42 | ||||
43 | После чего нужно перелогиниться в систему. |
|||
f79456 | Mayekkuzu | 2025-05-15 08:51:54 | 44 | ## Проброс видеокарты Nvidia в контейнер Ubuntu/Debian |
45 | ||||
46 | Необходимо добавить репозиторий. Nvidia советует использовать такой метод. |
|||
47 | ```bash |
|||
48 | curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ |
|||
49 | && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ |
|||
50 | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ |
|||
51 | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list |
|||
52 | ``` |
|||
53 | ||||
54 | Далее включаем экспериментальные пакеты и установим |
|||
55 | ```bash |
|||
56 | sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list |
|||
57 | sudo apt-get update |
|||
58 | sudo apt-get install -y nvidia-container-toolkit |
|||
59 | ``` |
|||
60 | ||||
61 | Генерируем конфигурационный фаил |
|||
62 | ```bash |
|||
63 | sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml |
|||
64 | ``` |
|||
65 | ||||
66 | Убедимся что видеокарта получила идентификатор |
|||
67 | ```bash |
|||
68 | root@exclusion-watch:~# nvidia-ctk cdi list |
|||
69 | INFO[0000] Found 3 CDI devices |
|||
70 | nvidia.com/gpu=0 |
|||
71 | nvidia.com/gpu=GPU-ec7e5c60-b699-86c7-39da-e61db1767de2 |
|||
72 | nvidia.com/gpu=all |
|||
73 | ``` |
|||
74 | ||||
75 | Ставим рантайм по умолчанию и рестартим сервис докер |
|||
76 | ```bash |
|||
77 | sudo nvidia-ctk runtime configure --runtime=docker --set-as-default |
|||
78 | sudo systemctl restart docker |
|||
79 | ``` |
|||
80 | ||||
81 | Теперь если необходимо пробросить карточку то ознакомьтесь с примером docker-compose |
|||
82 | ```yaml |
|||
83 | ... |
|||
84 | transcoder-nvidia: |
|||
85 | <<: *transcoder-base |
|||
86 | deploy: |
|||
87 | resources: |
|||
88 | reservations: |
|||
89 | devices: |
|||
90 | - capabilities: [gpu] |
|||
91 | driver: nvidia |
|||
92 | device_ids: |
|||
93 | - nvidia.com/gpu=0 |
|||
94 | ``` |