JavaRush /Курси /Модуль 2: Fullstack /Монтування томів у контейнери

Монтування томів у контейнери

Модуль 2: Fullstack
Рівень 16 , Лекція 2
Відкрита

3.1 Основи монтування томів

Монтування томів (volumes) у контейнери — це одна з ключових фіч Docker, яка дозволяє зберігати дані поза контейнерами, забезпечуючи їх тривале зберігання і доступність. Томи можуть використовуватись для різних цілей, включаючи зберігання конфігураційних файлів, баз даних, логів та інших важливих даних. У цій лекції ми розглянемо, як монтувати томи у контейнери, і покажемо практичні приклади.

Основи монтування томів

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

Команда для монтування томів

Томи монтуються у контейнери за допомогою параметрів -v або --mount при запуску контейнера.

3.2 Параметр -v

Приклади використання параметра -v

1. Монтування тому в контейнер

Створення тому та його монтування в контейнер:

Створення тому:

Terminal

docker volume create my_volume

Запуск контейнера з монтуванням тому:

Terminal

docker run -d --name my_container -v my_volume:/app nginx

У цьому прикладі том my_volume монтується в директорію /app контейнера my_container

2. Монтування декількох томів

Ви можете монтувати кілька томів в один контейнер:

Terminal

docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx

У цьому прикладі том volume1 монтується в директорію /app/data, а том volume2 — в директорію /app/logs.

3.3 Параметр --mount

Параметр --mount дає більш деталізований спосіб монтування томів, з можливістю вказання різних параметрів.

1. Монтування тому з використанням --mount

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app nginx

Цей приклад аналогічний попередньому прикладу з -v, але використовує більш детальний синтаксис.

2. Монтування з додатковими параметрами

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx

У цьому прикладі том монтується у режимі тільки для читання (readonly).

3.4 Практичні приклади

Приклад 1: Використання томів для бази даних

Створення і використання тому для зберігання даних бази даних.

Створення тому:

Terminal

docker volume create db_data

Запуск контейнера бази даних з монтуванням тому:

Terminal

docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v 
db_data:/var/lib/postgresql/data postgres

У цьому прикладі дані бази даних PostgreSQL зберігаються у томі db_data.

Приклад 2: Використання томів для конфігураційних файлів

Створення тому для зберігання конфігураційних файлів і монтування його у контейнер.

Створення тому:

Terminal

docker volume create config_data

Копіювання конфігураційних файлів у том:

Terminal

docker run --rm -v config_data:/app busybox sh -c "echo 'configuration data' > /app/config.txt"

Запуск контейнера з використанням тому для конфігураційних файлів:

Terminal

docker run -d --name my_app -v config_data:/app/config nginx

У цьому прикладі конфігураційні файли зберігаються у томі config_data, який монтується у директорію /app/config контейнера.

Приклад 3: Логи контейнера

Створення тому для зберігання логів контейнера і монтування його у контейнер.

Створення тому:

Terminal

docker volume create logs_data

Запуск контейнера з монтуванням тому для логів:

Terminal

docker run -d --name my_app -v logs_data:/var/log/nginx nginx

У цьому прикладі логи Nginx зберігаються у томі logs_data.

3.5 Перевірка вмісту томів

Ти можеш перевірити вміст тому, змонтувавши його у тимчасовий контейнер.

Приклад

Запуск тимчасового контейнера з монтуванням тому:

Terminal

docker run --rm -v my_volume:/app busybox ls /app

Цей приклад покаже вміст тому my_volume.

Видалення томів

Видалення тому, який більше не використовується.

Приклад

Видалення тому:

Terminal

docker volume rm my_volume

Якщо том використовується контейнером, Docker видасть помилку. Переконайся, що контейнери, які використовують цей том, зупинені та видалені.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ