Docker Compose CheatSheet – Бърз справочник за многоконтейнерни приложения
Docker Compose е инструмент, който улеснява управлението на многоконтейнерни Docker приложения чрез един YAML файл. Той ви позволява да дефинирате, стартирате и управлявате цялата среда с една команда.
Какво представлява docker-compose.yml?
Примерен docker-compose.yml:
version: '3.8'
services:
web:
image: nginx
ports:
- "8080:80"
app:
build: .
volumes:
- .:/code
depends_on:
- db
db:
image: postgres
environment:
POSTGRES_PASSWORD: example
Основни команди
| Действие | Команда |
|---|---|
| Стартирай услугите | docker-compose up |
| Стартирай във фонов режим | docker-compose up -d |
| Спри всички услуги | docker-compose down |
| Преизгради услуги | docker-compose up --build |
| Преизгради само образите | docker-compose build |
| Спри (без да изтриваш) | docker-compose stop |
| Стартирай отново | docker-compose start |
| Рестартирай | docker-compose restart |
Инспекция и диагностика
| Действие | Команда |
|---|---|
| Покажи статус | docker-compose ps |
| Покажи логове | docker-compose logs |
| Следи логове на живо | docker-compose logs -f |
| Достъп до контейнер | docker-compose exec <услуга> bash |
| Пусни команда в контейнер | docker-compose run <услуга> <команда> |
Работа с среди (env files)
Можеш да дефинираш променливи в .env файл и да ги използваш в docker-compose.yml така:
environment:
- DB_USER=${DB_USER}
.env файл:
DB_USER=admin
Volumes и Mounts
volumes:
- ./data:/var/lib/mysql
Това монтира локалната папка ./data в контейнера.
depends_on
depends_on:
- db
Определя зависимост между услугите. Но не гарантира, че услугата е напълно готова — само че е стартирана. Използвайте healthcheck, ако е нужно изчакване.
Полезни съвети
- Reset на Compose среда:
docker-compose down -v --remove-orphans - Изчисти ненужните образи и контейнери:
docker system prune - Разгледай всички обекти, свързани с Compose:
docker-compose config
Допълнителни възможности
- Multi-host orchestration? => Потърси Docker Swarm или Kubernetes.
- Поддръжка за различни среди? Използвай различни
docker-compose.override.ymlфайлове. - Миграции, cron, init скриптове? Добави
command:иentrypoint:в YAML-а.
Docker Compose е мощен инструмент за разработчици и екипи, които работят с микросервизна архитектура. Той съкращава времето за конфигурация и стартиране на среди и улеснява автоматизацията. Този cheatsheet предоставя основните команди и концепции, които ще използваш всеки ден.