Site icon IT Education Center Blog – блог навчального центру DevOps – ITEDU by NETFORCE Group

Що таке Docker Compose?

Docker Compose — це інструмент, який спрощує роботу з багатоконтейнерними застосунками в Docker. Він дозволяє визначати та керувати кількома взаємопов’язаними сервісами за допомогою єдиного конфігураційного файлу у форматі YAML. 

Історія Docker Compose починається у 2014 році, коли Docker створив цей інструмент для спрощеного розгортання складних застосунків. Спочатку він викликався за командою docker-compose. З випуском версії 2, Compose був інтегрований безпосередньо в Docker CLI, що дозволило використовувати команду docker compose (без дефіса). 

Ключові можливості Docker Compose

З Compose ти можеш запустити весь стек застосунку лише однією командою:

docker compose up -d

Створює всі необхідні контейнери, запускає їх у правильному порядку та об’єднує їх в одну мережу, щоб вони «бачили» один одного.

Файл docker-compose.yml — це серце Docker Compose. У ньому ти описуєш, які сервіси має запускати Docker, які образи використовувати, змінні середовища та залежності між контейнерами.

Приклад docker-compose.yml:

version: '3'

services:

app:

build:

context: .

command: >

sh -c "python manage.py wait_for_db &&

python manage.py migrate &&

python manage.py runserver 0.0.0.0:8000"

Docker Compose дозволяє запускати всі сервіси одночасно, налаштовувати їхню взаємодію та зберігати дані. Можна швидко масштабувати застосунок і додавати нові екземпляри сервісів.

Основні директиви

Конфігураційний файл docker-compose.yml містить набір директив. Директиви — це ключові параметри, що визначають, які контейнери будуть запущені, як вони будуть взаємодіяти між собою, де зберігатимуть дані та які ресурси використають. Ось ті, які зустрічаються найчастіше:

  1. version — вказує версію синтаксису Docker Compose.
  2. services — перелік контейнерів, які складають застосунок.
  3. image — визначає, який контейнерний образ використовувати.
  4. build — дозволяє створювати контейнер із Dockerfile.
  5. ports — відкриває доступ до контейнера через певні порти.
  6. environment — задає змінні середовища для контейнера.
  7. volumes — зберігає дані між перезапусками контейнера.
  8. networks — налаштовує зв’язок між контейнерами.
  9. depends_on — задає порядок запуску сервісів.

Переваги та недоліки Docker Compose

Спершу розгляньмо переваги інструменту:

Мінуси Docker Compose: 

Як Docker Compose використовують DevOps-інженери?

Docker Compose допомагає створювати та управляти багатоконтейнерними середовищами, що є необхідним для процесів CI/CD. Завдяки Docker Compose, ти можеш швидко відтворити продакшн-середовище на локальній машині та тестувати застосунок з усіма потрібними сервісами. Наприклад базами даних чи вебсервісами. Тобто те, що працює локально буде працювати й на сервері, зменшуючи ймовірність багів при розгортанні.

Docker Compose відіграє важливу роль в автоматизації тестування та розгортанні. Він спрощує налаштування середовища для автоматичних тестів, що знижує час на підготовку і забезпечує більш стабільні й передбачувані результати. Завдяки такій автоматизації, команди DevOps-інженерів можуть зосередитися на інших важливих аспектах роботи, а сам процес розгортання стає значно швидшим і безпечнішим.

Корисні посилання

Документація Docker Compose на офіційному сайті Docker 

Покрокова інструкція: як встановити та використовувати Docker Compose 

Docker Swarm vs Kubernetes: що обрати?

Опануй Docker Compose за одне заняття на курсі «Docker. Практикум з адміністрування».

Dobrianska Olena
Exit mobile version