You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
4.5 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## Инструменты Docker
### 1. Многоступенчатая сборка образов
Docker позволяет задействовать несколько исходных образов при сборке результирующего, при этом используя только один Dockerfile.
Каждая стадия сборки может обмениваться файлами с предыдущими.
Эта возможность бывает особенно полезна при создании крупных приложений, состоящих из нескольких разных частей, использующих разные языки программирования и разные платформы.
### 2. Политики перезапуска и базовый мониторинг
Для контейнеров можно установить политики перезапуска, таким образом, чтобы Docker перезапускал контейнер в случае ошибки, или же в случае перезагрузки демона или даже операционной системы.
Docker также предоставляет инструмент HEALTHCHECK - возможность базового мониторинга состояния контейнера. Его можно указать как при сборке образа так и при запуске контейнера.
HEALTHCHECK **не** связан с политиками перезапуска напрямую. Для имплементации перезапуска при провале команды проверки, нужно реализовывать эту логику вручную.
### 3. Ограничение ресурсов
Docker позволяет ограничивать ресурсы компьютера, доступные контейнерам. Это бывает особенно полезно в случае некорректно написанных приложений, которые, к примеру, нерационально расходуют память системы. Таким образом можно как обезопасить хост-систему от переполнения памяти, так и более рационально распорядиться доступной памятью(или ресурсами CPU) в случае нескольких контейнеров.
### 4. Docker Compose
Как вы могли заметить, запуск команд Docker вручную - довольно утомительное занятие.
К счастью, Docker предоставляет плагин Docker Compose, который позволяет декларативно описывать конфигурацию Docker на локальной машине, включая контейнеры, сети, и все остальное. Продвинутые возможности Docker, такие как политики перезапуска, или ограничения ресурсов, в нем выглядят особенно просто и наглядно.
Docker Compose использует YAML в качестве языка конфигурации. По умолчанию, файл конфигурации называется `docker-compose.yml`
### 5. Docker Swarm
Docker Swarm это простой оркестратор для контейнеров, который доступен из коробки. Позволяет объединить докер демоны на разных машинах в кластер, что даёт возможность поставки распределённых приложений упакованных в контейнеры. Swarm, так же как и Compose, имеет декларативную модель описания кластерного приложения. Типичными задачами для такого типа приложений являются организация высокой доступности, балансировки нагрузки и канареечного обновления сервиса. Также вы можете добиться эластичности распределённого приложения, которое создаёт и удаляет контейнеры в зависимости от поступающей нагрузки.