Docker
Одним из наиболее популярных инструментов для программной виртуализации является программа Docker – автоматизированное средство управления виртуальными контейнерами. Он решает множество задач, связанных с созданием контейнеров, размещением в них приложений, управлением процессами, а также тестированием ПО и его отдельных компонентов.
Docker – программное обеспечение с открытым исходным кодом, применяемое для разработки, тестирования, доставки и запуска веб-приложений в средах с поддержкой контейнеризации. Он нужен для более эффективного использования Системы и ресурсов, быстрого развертывания готовых программных продуктов, а также для их масштабирования и переноса в другие среды с гарантированным сохранением стабильной работы.
Docker-контейнеры работают в разных средах: локальном центре обработки информации, облаке, персональных компьютерах и т. д.
Docker представляет собой набор нескольких основных компонентов:
- Docker-демон (Docker-daemon) – сервер контейнеров, входящий в состав программных средств Docker. Демон управляет Docker-объектами (сети, хранилища, образы и контейнеры). Демон также может связываться с другими демонами для управления сервисами Docker.
- Docker-клиент (Docker-client / CLI) – интерфейс взаимодействия пользователя с Docker-демоном. Клиент и Демон – важнейшие компоненты "движка" Докера (Docker Engine). Клиент Docker может взаимодействовать с несколькими демонами.
- Docker-образ (Docker-image) – файл, включающий зависимости, сведения, конфигурацию для дальнейшего развертывания и инициализации контейнера.
- Docker-файл (Docker-file) – описание правил по сборке образа, в котором первая строка указывает на базовый образ. Последующие команды выполняют копирование файлов и установку программ для создания определенной среды для разработки.
- Docker-контейнер (Docker-container) – это легкий, автономный исполняемый пакет программного обеспечения, который включает все необходимое для запуска приложения: код, среду выполнения, системные инструменты, системные библиотеки и настройки.
- Том (Volume) – эмуляция ФС для осуществления операций чтения и записи. Она создается автоматически с контейнером, поскольку некоторые приложения осуществляют сохранение данных.
- Реестр (Docker-registry) – зарезервированный сервер, используемый для хранения docker-образов. Примеры реестров:
- Центр Docker – реестр, используемый для загрузки docker-image. Он обеспечивает их размещение и интеграцию с GitHub и Bitbucket.
- Контейнеры Azure – предназначен для работы с образами и их компонентами в директории Azure (Azure Active Directory).
- Доверенный реестр Docker или DTR – служба docker-реестра для инсталляции на локальном компьютере или сети компании.
- Docker-хаб (Docker-hub) или хранилище данных – репозиторий, предназначенный для хранения образов с различным ПО. Наличие готовых элементов влияет на скорость разработки.
- Docker-хост (Docker-host) – машинная среда для запуска контейнеров с программным обеспечением.
- Docker-сети (Docker-networks) – применяются для организации сетевого интерфейса между приложениями, развернутыми в контейнерах.
- Docker Engine ("движок" Docker) – ядро механизма Docker. "Движок" отвечает за функционирование и обеспечение связи между основными Docker-объектами (реестром, образами и контейнерами).
Сервер выполняет инициализацию демона (фоновой программы), который применяется для управления и модификации контейнеров, образов и томов.
REST API – механизм, отвечающий за организацию взаимодействия Docker-клиента и Docker-демона.
Клиент – позволяет пользователю взаимодействовать с сервером при помощи команд, набираемых в интерфейсе (CLI).
Установка и запуск сервиса docker:
sudo dnf install docker docker-containerd docker-compose -y
sudo systemctl start docker
sudo systemctl enable docker