Леонид МаслаковLenpaste

Зачем нужен Docker?

24.02.2022

Что такое Docker?

Docker предназначен в первую очередь для упрощения запуска серверного ПО.

Раньше для того что бы запустить приложение нужно было скопировать бинарные файлы на сервер, а для обновления соответственно заменить их. И всё было бы хорошо если бы приложения не требовали зависимостей в виде: баз данных, веб серверов и самых различных библиотек. Проблема заключается в том что все эти вещи требуют установки и настройки.

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

Как это работает?

  1. Вы описываете как развернуть и настроить приложение в файле Dockerfile.
  2. Собираете: docker build -t coolapp:latest
  3. И запускаете: docker run coolapp:latest

Docker контейнер будет изолирован от системы-хоста. Хотя если вам потребуется пробросить порт наружу или смонтировать определённую директорию внутрь контейнера никто не мешает это сделать.

Важно понимать что Docker - это не вертуальная машина, это контейнер. Значит ядро Linux у контейнера и хоста будет общее. Как плюс - это существено снижает потребление к ресурсов. Как минус - не позволяет устанавливать ПО использующие модули ядра (например WireGuard) и запускать ОС отличные от Linux.

Термины

Образ - создаётся после команды docker build, имено он скачивается с Docker Hub.

Контейнер - получается после запуска образа командной docker run.

Регистр (реестр) - хранилище образов. Cамый популярный экземпляр - это Docker Hub.

Ссылки