Что такое Docker и каковы его ключевые концепции

Ответ

Docker — это открытая платформа для разработки, доставки и запуска приложений в изолированных средах, называемых контейнерами. Контейнеризация позволяет упаковать приложение со всеми его зависимостями в один переносимый образ, который будет работать одинаково в любом окружении.

Ключевые концепции Docker:

  • Image (Образ) Это неизменяемый (immutable) шаблон, содержащий все необходимое для запуска приложения: код, среду выполнения, библиотеки, переменные окружения и конфигурационные файлы. Образы строятся на основе инструкций из Dockerfile.

  • Container (Контейнер) Это запущенный экземпляр образа. Контейнер представляет собой изолированный процесс в хост-системе, имеющий собственную файловую систему, сеть и пространство процессов. Можно запускать, останавливать, перемещать и удалять контейнеры.

  • Dockerfile Текстовый файл с набором инструкций для автоматической сборки образа Docker. Каждая инструкция создает новый слой в образе.

  • Registry (Реестр) Хранилище для образов Docker. Самый известный публичный реестр — Docker Hub. Компании часто используют приватные реестры для хранения своих образов.

  • Volume (Том) Механизм для сохранения данных, генерируемых и используемых контейнерами. Данные в томах хранятся на хост-машине и не удаляются вместе с контейнером, что обеспечивает их персистентность.

Основные команды:

# Собрать образ из Dockerfile в текущей директории
docker build -t my-app:1.0 .

# Запустить контейнер из образа в фоновом режиме
docker run -d -p 8080:80 --name my-running-app my-app:1.0

# Посмотреть список запущенных контейнеров
docker ps

# Остановить контейнер
docker stop my-running-app