Лабораторна робота №6
Docker Compose - це інструмент для оркестрації та управління багатьма Docker контейнерами. Він дозволяє визначати та запускати складні архітектури додатків, які складаються з різних сервісів та їх залежностей. В основі Docker Compose лежить конфігураційний файл docker-compose.yml
, що описує параметри та взаємодію між контейнерами.
Основні поняття Docker Compose:
Сервіси (Services):
- Сервіс - це один або більше контейнерів, які взаємодіють між собою.
- Кожен сервіс визначається в
docker-compose.yml
та може використовувати свій власний Docker образ.
Мережі (Networks):
- Docker Compose створює мережі для забезпечення зв'язку між сервісами.
- Спільні мережі дозволяють контейнерам в одному сервісі спілкуватися з контейнерами інших сервісів.
Змінні середовища (Environment Variables):
- Docker Compose дозволяє встановлювати змінні середовища для кожного сервісу, що полегшує конфігурацію.
Залежності та Порядок Запуску (Dependencies and Startup Order):
- Ви можете визначити залежності між сервісами та порядок їх запуску, щоб гарантувати коректне встановлення та роботу додатка.
Завдання
1. Створіть новий каталог для лабораторної роботи та перейдіть в нього.mkdir docker_compose_lab cd docker_compose_lab
2. Створіть файл docker-compose.yml
у цьому каталозі для опису сервісів та налаштувань контейнерів.
version: '3' services: web: image: nginx:alpine ports: - "8080:80" networks: - mynetwork db: image: postgres:alpine environment: POSTGRES_DB: mydatabase POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword networks: - mynetwork networks: mynetwork:
3. Визначте два сервіси: web
з веб-сервером Nginx та db
з базою даних PostgreSQL. Встановіть мережу mynetwork
для обох сервісів.
4. Запустіть контейнери за допомогою Docker Compose:
docker-compose up -d
5. Перевірте статус та життєздатність контейнерів:
docker-compose ps
6. Відкрийте веб-браузер і перейдіть за адресою http://localhost:8080
. Ви повинні бачити сторінку Nginx за замовчуванням.
7. Перевірте підключення до бази даних PostgreSQL. Використовуйте іншу оболонку або інструмент для роботи з PostgreSQL, або використовуйте psql
в контейнері:
docker-compose exec db psql -U myuser -d mydatabase
8. Введіть пароль (mypassword
) та переконайтеся, що ви ввійшли у систему PostgreSQL.
9. Зупиніть та видаліть контейнери:
docker-compose down
10. Розширте файл docker-compose.yml
, додаючи новий сервіс, наприклад, api
, який використовує образ node:alpine
та слухає на порту 3000
.
version: '3' services: web: image: nginx:alpine ports: - "8080:80" networks: - mynetwork db: image: postgres:alpine environment: POSTGRES_DB: mydatabase POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword networks: - mynetwork api: image: node:alpine ports: - "3000:3000" networks: - mynetwork networks: mynetwork:
11. Запустіть оновлений склад сервісів:
docker-compose up -d
12. Перевірте статус та життєздатність всіх сервісів:
docker-compose ps
13. Відкрийте веб-браузер і перевірте доступність сторінки Nginx за адресою http://localhost:8080
та API за адресою http://localhost:3000
.
14. Зупиніть та видаліть контейнери:
15. Розширте файлdocker-compose down
docker-compose.yml
, додаючи новий сервіси mysql та apache2 :