This commit is contained in:
chase
2026-05-04 11:07:31 +03:00
commit 52280c721f
44 changed files with 991 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
## Что такое Docker
Docker - это платформа для упаковки приложения вместе со всеми зависимостями в **изолированную среду** (контейнер), которая запускается одинаково на любом устройстве.
Коротко по терминам:
1. **Образ (image)** - неизменяемый «снимок» файловой системы и метаданных запуска (команда по умолчанию, переменные окружения, порты). Образ строится из слоёв; его можно скачать из реестра (например, Docker Hub) или собрать сами из `Dockerfile`.
2. **Контейнер** - запущенный экземпляр образа. У контейнера есть ID, имя, сеть, опционально тома с данными. Один образ может породить много контейнеров.
3. **Docker Engine** - демон и CLI (`docker`), которые создают и управляют контейнерами на хосте.
4. **Docker Compose** - инструмент (плагин к CLI: `docker compose`) для описания **нескольких** сервисов в одном YAML-файле: сборка образов, порты, тома, сети, зависимости запуска, переменные окружения.
<img src="./assets/image_1777876655709.png" width="auto">
## Зачем это нужно
1. **Стабильность** - «у меня не работает» больше не актуально, докер образ можно запускать на любом устройстве, где установлен докер.
2. **Изоляция** - приложения не мешают друг другу версиями библиотек и не требуют полноценной виртуальной машины на каждый сервис.
3. **Масштаб** - образы легко переносить, дальше их поднимают Kubernetes, Nomad и т.д., но база всё равно Docker-образ.
4. **Compose для стека** - фронт, бэкенд, БД и кэш поднимаются одной командой и общаются по внутренней сети.
## Docker и виртуальная машина
Виртуальная машина эмулирует железо и поднимает полную ОС. Контейнер делится ядром хоста и изолируется, он легче и быстрее стартует, но это не замена полной изоляции уровня ВМ для всех сценариев безопасности.
## Когда достаточно `docker run`, а когда Compose
- **`docker run`** - один контейнер, эксперимент, отладка, скрипты.
- `docker compose` - несколько связанных сервисов, общая сеть, тома, единая точка входа для разработки и демо.
<img src="./assets/image_1777876699941.png" width="auto">
## Документация
- [Официальная документация Docker](https://docs.docker.com/)
- [Compose](https://docs.docker.com/compose/compose-file/)