1

Что такое Docker и для чего он нужен


Docker — это популярный инструмент для работы контейнерами. В статье расскажем, что это такое, как он работает и где может быть полезен.

Что такое Docker

Это продукт с открытым исходным кодом, который используется для автоматического развёртывания приложений. Они формируются в автономные переносные контейнеры и выполняются в облачной или локальной среде.

Благодаря платформе Docker тестирование и выкладывание приложений становятся в разы быстрее. Разработчикам уже не нужно думать о том, в какой среде будет работать приложение, присутствуют ли там требуемые для тестирования возможности и зависимости. Все зависимости и процессы упаковываются вместе с приложением в контейнер, поэтому их можно запускать в любых системах: Linux, Windows и macOS. Таким образом, приложения перестали зависеть от инфраструктуры и могут быть легко и безболезненно перемещены.

В каком-то смысле метод контейнеризации близок виртуализации, но есть существенные отличия. Виртуализация позволяет сделать внутри сервера отдельный виртуальный компьютер с нужным количеством ресурсов, установленной ОС и программным обеспечением. В случае же контейнеризации, виртуальная среда запускается из ядра операционной системы, при этом виртуализации физических ресурсов не происходит.

Особенности и возможности контейнеров

1. Относительно короткий жизненный цикл. Если возникает потребность, любой из них можно приостановить, перезапустить или удалить. При удалении контейнера полностью уничтожаются и все данные, поэтому не рекомендуется держать в контейнере важную информацию.

2. Небольшой размер. Обычно объем контейнера замеряют в мегабайтах. Если они не будут тяжеловесными, их можно запускать быстрее, и экономится место на диске.

3. Один контейнер – один процесс. Благодаря этому при отключении одного контейнера работа остального приложения не стопорится.

4. Повышенная безопасность. Контейнеризация позволяет изолировать процессы, все приложения, которые находятся в контейнере, не получают доступа к основной операционной системе.

5. Контейнеры позволяют автоматически развёртывать приложения на различных хостах.

6. Требуется мало ресурсов. На том же самом оборудовании можно запустить больше контейнеров, чем виртуальных машин.

Из чего состоит Docker

Dockerfile. Документ с инструкцией по созданию образа Docker. Каждой строке соответствует одна команда.

Daemon. Фоновая служба, расположенная на хосте и отвечающая за подготовку, запуск и удаление контейнеров.

Image. Образ, который позволяю произвольное количество раз разворачивать этот контейнер.

Client. Клиент, с помощью которого управляется Daemon, а через него в свою очередь происходит любое взаимодействие с контейнером.

Container. Развёрнутое из образа приложение.

Registry. Служба в Docker, которая является репозиторием. С её помощью можно следить за версиями образов, делать приватные хранилища.

Docker Hub. Известный публичный репозиторий, который применяется по умолчанию. Делает возможной интеграцию с GitHub.

Docker Desktop. Приложение для локальной работы с контейнерами.

Docker volumes. Тома, которые служат для постоянного хранения данных. Они способствуют лучшей настройке хранения данных.

Устройство образа Docker

В базовом образе контейнеризации Docker находятся процессы и зависимости, которые обеспечивают работу приложений. На базовый образ поверх накладываются слои, доступные только для чтения. Они появляются после внесения любых элементов в образ. Каждый слой сохраняется, поэтому при необходимости можно всё откатить назад.

doc.jpg

Контейнер отличается от образа тем, что сверху есть ещё один слой с возможностью записи. Вы всегда можете создать новый контейнер из старого образа.

Каждый образ хранит Docker manifest. Это файл JSON, где записаны данные об образе: ссылки на слои, их размеры, хеш, данные о платформе.

Заключение

Применение образов и контейнеров даёт возможность сделать сложную архитектуру приложений проще и автоматизировать многие процессы. если вы хотите работать с контейнерами, Cloud4Y предлагает удобную платформу Kubernetes. Она подходит для автоматизации контейнеров на Ubuntu, CentOS и других операционных системах Linux. Вы сможете централизованно объединять контейнеры в группы, осуществлять балансировку нагрузки и др.



Полезный материал?
1
0
автор: Ольга Цветкова
опубликовано: 10.06.2022
Читайте нас: 
Последние статьи
Вверх!