Зачем нужен Docker?
24.02.2022
Что такое Docker?
Docker предназначен в первую очередь для упрощения запуска серверного ПО.
Раньше для того что бы запустить приложение нужно было скопировать бинарные файлы на сервер, а для обновления соответственно заменить их. И всё было бы хорошо если бы приложения не требовали зависимостей в виде: баз данных, веб серверов и самых различных библиотек. Проблема заключается в том что все эти вещи требуют установки и настройки.
Docker снимает большую часть вопросов, связанных с настройкой окружения.
Как это работает?
- Вы описываете как развернуть и настроить приложение в файле
Dockerfile
. - Собираете:
docker build -t coolapp:latest
- И запускаете:
docker run coolapp:latest
Docker контейнер будет изолирован от системы-хоста. Хотя если вам потребуется пробросить порт наружу или смонтировать определённую директорию внутрь контейнера никто не мешает это сделать.
Важно понимать что Docker - это не вертуальная машина, это контейнер. Значит ядро Linux у контейнера и хоста будет общее. Как плюс - это существено снижает потребление к ресурсов. Как минус - не позволяет устанавливать ПО использующие модули ядра (например WireGuard) и запускать ОС отличные от Linux.
Термины
Образ - создаётся после команды docker build
, имено он скачивается с Docker Hub.
Контейнер - получается после запуска образа командной docker run
.
Регистр (реестр) - хранилище образов. Cамый популярный экземпляр - это Docker Hub.