[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-docker-chto-takoe-docker-compose":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},1086,"chto-takoe-docker-compose",17,"docker","Docker","🐳","Что такое Docker Compose?","Docker Compose — это инструмент для определения и запуска многоконтейнерных Docker-приложений. Конфигурация описывается в файле `docker-compose.yml` (YAML), и с помощью одной команды можно поднять всю инфраструктуру.\n\n### Зачем нужен\n\n- Локальная разработка — запуск приложения вместе с базой данных, кэшем, очередью сообщений одной командой\n- Тестовые окружения\n- Описание зависимостей между сервисами\n\n### Основные команды\n\n| Команда | Описание |\n|---|---|\n| `docker compose up` | Создать и запустить все сервисы |\n| `docker compose up -d` | Запустить в фоновом режиме |\n| `docker compose down` | Остановить и удалить контейнеры, сети |\n| `docker compose down -v` | Остановить и удалить вместе с томами |\n| `docker compose build` | Пересобрать образы |\n| `docker compose logs -f` | Следить за логами всех сервисов |\n| `docker compose ps` | Список запущенных сервисов |\n| `docker compose exec service cmd` | Выполнить команду в контейнере сервиса |\n\n### Пример docker-compose.yml\n\n```yaml\nversion: '3.8'\n\nservices:\n  app:\n    build: .\n    ports:\n      - \"8080:8080\"\n    environment:\n      - SPRING_PROFILES_ACTIVE=dev\n      - SPRING_DATASOURCE_URL=jdbc:postgresql:\u002F\u002Fdb:5432\u002Fmydb\n    depends_on:\n      - db\n\n  db:\n    image: postgres:16-alpine\n    ports:\n      - \"5432:5432\"\n    environment:\n      POSTGRES_DB: mydb\n      POSTGRES_USER: admin\n      POSTGRES_PASSWORD: secret\n    volumes:\n      - postgres-data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n\nvolumes:\n  postgres-data:\n```\n\nНачиная с Docker Compose V2, команда `docker-compose` (через дефис) заменена на `docker compose` (через пробел). Ключ `version` в `docker-compose.yml` теперь является необязательным.\n\n> **На собеседовании:** Docker Compose — стандартный инструмент для локальной разработки Java-приложений. Покажите, что умеете описать типичный стек: приложение + БД + кэш. Упомяните, что `depends_on` гарантирует только порядок запуска контейнеров, но не готовность сервиса внутри.","","junior",[15,16,17,7],"основы","multi-container","docker-compose",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":33,"featuredSnippetReady":34},"Что такое Docker Compose — Gymterview","Docker Compose — инструмент для определения и запуска многоконтейнерных приложений. YAML-конфигурация, основные команды, пример Spring Boot + PostgreSQL.","Docker Compose: определение и запуск многоконтейнерных приложений — Gymterview","Docker Compose описывает многоконтейнерное приложение в YAML. Одна команда поднимает приложение, БД, кэш и другие сервисы.",[26,27,28,29,30,31,32],"Docker Compose","docker-compose.yml","многоконтейнерное приложение","docker compose up","depends_on","services","собеседование","Docker Compose — инструмент для определения и запуска многоконтейнерных Docker-приложений. Конфигурация описывается в docker-compose.yml (YAML). Команды: docker compose up (запуск), docker compose down (остановка), docker compose logs (логи). Используется для локальной разработки: приложение + БД + кэш одной командой. depends_on гарантирует порядок запуска контейнеров, но не готовность сервиса внутри.",true]