Docker Compose
Файл docker-compose.yaml використовується для налаштування і запуску багатоконтейнерних Docker-додатків. У цьому розділі ми розглянемо, як прописати використання вашого образу у файлі docker-compose.yaml, а також які команди викликати для збірки і оновлення контейнерів у випадку змін у Dockerfile.
Створення та налаштування docker-compose.yaml
Створіть файл docker-compose.yaml у кореневій директорії вашого проекту. Цей файл буде використовуватися для опису сервісів, мереж і об'ємів.
Приклад docker-compose.yaml:
version: '3'
services:
app:
build: .
image: myapp:latest
ports:
- '8080:8080'
volumes:
- .:/app
Опис основних параметрів:
version: Версія формату файлу Compose.services: Опис ваших сервісів (контейнерів).app: Назва сервісу.build: Шлях доDockerfile, який потрібно використовувати.image: Ім'я образу, який буде створений.ports: Проброс портів між хост-машиною і контейнером.volumes: Проброс директорій з хост-машини в контейнер.
Збірка і запуск контейнерів
Для збірки і запуску контейнерів використовуйте команду docker-compose up.
Команда docker-compose up
Основний синтаксис:
docker-compose up --build
--build: Прапорець, який змушує Docker заново зібрати образ перед запуском контейнера.
Ця команда виконує збірку образу і запуск контейнерів:
docker-compose up --build
Оновлення контейнерів у випадку змін у Dockerfile
Якщо ви вносите зміни в Dockerfile, потрібно заново зібрати образ і перезапустити контейнери. Для цього використовуйте все ту ж команду docker-compose up з прапорцем --build.
Оновлення контейнерів:
- Внесіть зміни в
Dockerfile. - Виконайте команду:
docker-compose up --build
Перезапуск контейнерів без зупинки
Якщо ви хочете перезапустити контейнери посеред роботи, можна використовувати команду docker-compose restart.
Команда docker-compose restart
Основний синтаксис:
docker-compose restart
Ця команда перезапускає всі запущені контейнери, визначені у файлі docker-compose.yaml:
docker-compose restart
Зупинка контейнерів
Щоб зупинити всі контейнери, використовуйте команду docker-compose down.
Команда docker-compose down
Основний синтаксис:
docker-compose down
Ця команда зупиняє і видаляє всі контейнери, мережі та томи, створені за допомогою docker-compose up:
docker-compose down
Приклад послідовності команд
- Створіть
docker-compose.yaml:version: '3' services: app: build: . image: myapp:latest ports: - '8080:8080' volumes: - .:/app - Збірка і запуск контейнерів:
docker-compose up --build - Оновлення контейнерів після змін у
Dockerfile:docker-compose up --build - Перезапуск контейнерів:
docker-compose restart - Зупинка і видалення контейнерів:
docker-compose down
Ці команди та конфігурації дозволяють ефективно керувати вашим Docker-додатком, автоматизуючи збірку і запуск контейнерів з використанням docker-compose.
Додаткові посилання
- https://docs.docker.com/compose/features-uses/
- https://appmaster.io/blog/docker-compose
- https://towardsdatascience.com/docker-compose-for-absolute-beginners-how-does-it-work-and-how-to-use-it-examples-733ca24c5e6c
- https://linuxhandbook.com/docker-compose-up-start-down-stop/
- https://habr.com/ru/companies/ruvds/articles/450312/
- https://k21academy.com/docker-kubernetes/docker-compose-vs-kubernetes/