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 предоставя основните команди и концепции, които ще използваш всеки ден.