Як встановити та використовувати Docker Compose на Rocky Linux 8

Вступна частина

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

Ця інструкція допоможе вам інсталювати та налаштувати Docker Compose на Rocky Linux 8. Ми розглянемо етапи встановлення, створення простого файлу Compose, запуск та припинення контейнерів, а також ознайомимося з деякими корисними функціями.

Інсталяція Docker Compose на Rocky Linux 8

На початку, впевніться, що Docker вже встановлений на вашому сервері. Якщо Docker ще не встановлено, скористайтеся інструкцією за посиланням https://docs.docker.com/engine/install/centos/. Після встановлення Docker можна переходити до встановлення Docker Compose.

1. Оновлення пакетів:
bash
sudo dnf update

2. Інсталяція Docker Compose:
bash
sudo dnf install docker-compose

3. Перевірка інсталяції:
bash
docker-compose --version

Ви побачите інформацію про встановлену версію Docker Compose.

Створення першого Docker Compose проєкту

Після встановлення Docker Compose, створимо простий проєкт, щоб продемонструвати його функціональність.

1. Створення папки для проєкту:
bash
mkdir my-app
cd my-app

2. Створення файлу docker-compose.yml:
yaml
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: my-secret-password
ports:
- "3306:3306"

Роз’яснення файлу docker-compose.yml:

* version: Визначає версію Docker Compose.
* services: Визначає перелік служб, які будуть запущені у складі проєкту.
* web: Це ім’я сервісу, що буде запущено як контейнер Nginx.
* image: Вказує на образ Docker, що використовуватиметься для створення контейнера.
* ports: Встановлює відповідність між портами контейнера і хост-системи.
* volumes: Додає том до контейнера, дозволяючи приєднувати файли або папки з хост-системи.
* db: Це ім’я сервісу, який буде запущено як контейнер MySQL.
* image: Вказує на образ Docker для контейнера MySQL.
* environment: Встановлює змінні оточення для контейнера.
* ports: Встановлює відповідність між портами контейнера і хост-системи.

3. Створення файлу nginx.conf:
nginx
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}

Цей файл конфігурує Nginx для обробки статичного контенту.

4. Запуск проєкту:
bash
docker-compose up -d

Ця команда запустить всі сервіси, визначені у файлі docker-compose.yml, у фоновому режимі.

Управління контейнерами Docker Compose

Після запуску проєкту ви можете керувати контейнерами за допомогою різних команд Docker Compose:

* Перегляд запущених контейнерів:
bash
docker-compose ps

* Зупинка контейнерів:
bash
docker-compose stop

* Перезапуск контейнерів:
bash
docker-compose restart

* Видалення контейнерів:
bash
docker-compose down

Корисні можливості Docker Compose

Docker Compose надає ряд корисних функцій, включаючи:

* Динамічне масштабування: Ви можете легко збільшити кількість контейнерів для кожної служби за допомогою опції --scale.
* Змінні оточення: Можна передавати змінні оточення до контейнерів, використовуючи секцію environment у файлі docker-compose.yml.
* Мережі: Docker Compose автоматично створює мережу для ваших контейнерів, що дозволяє їм взаємодіяти один з одним.
* Томи: Можна підключати томи до контейнерів для збереження даних або конфігурацій.
* Відкат змін: Docker Compose дозволяє повернутися до попередньої версії вашого проєкту.

Висновок

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

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

Поширені запитання

1. Яка відмінність між Docker Compose та Docker?

Docker – це платформа для створення та запуску контейнерів. Docker Compose – це інструмент для визначення та управління багатоконтейнерними програмами Docker.

2. Чи можливо використовувати Docker Compose без Docker?

Ні, Docker Compose використовує Docker для створення та запуску контейнерів.

3. Як змінити файл docker-compose.yml після запуску проєкту?

Зупиніть проєкт за допомогою docker-compose stop, внесіть необхідні зміни до файлу docker-compose.yml та перезапустіть проєкт командою docker-compose up -d.

4. Які файли можна використовувати для опису проєкту Docker Compose?

Docker Compose підтримує лише файли YAML.

5. Як переглянути журнали контейнера за допомогою Docker Compose?

Скористайтеся командою docker-compose logs для перегляду журналів контейнерів.

6. Як встановити змінні оточення для контейнерів за допомогою Docker Compose?

Використайте секцію environment у файлі docker-compose.yml для визначення змінних оточення.

7. Як приєднати томи до контейнерів за допомогою Docker Compose?

Скористайтеся секцією volumes у файлі docker-compose.yml для приєднання томів.

8. Як масштабувати проєкт Docker Compose?

Масштабуйте проєкт за допомогою опції --scale команди docker-compose up.

9. Як повернутися до попередньої версії проєкту Docker Compose?

Docker Compose автоматично зберігає попередні версії проєкту. Ви можете відкотити зміни, використовуючи команду docker-compose down з опцією --rmi all.

10. Де знайти додаткову інформацію про Docker Compose?

Більше інформації про Docker Compose ви знайдете на офіційному веб-сайті Docker: https://docs.docker.com/compose/.

Теги: Docker, Docker Compose, Rocky Linux 8, багатоконтейнерні середовища, розгортання, управління контейнерами, контейнеризація, розробка ПЗ, DevOps, інфраструктура як код.