3.1 Основи монтування томів
Монтування томів (volumes) у контейнери — це одна з ключових фіч Docker, яка дозволяє зберігати дані поза контейнерами, забезпечуючи їх тривале зберігання і доступність. Томи можуть використовуватись для різних цілей, включаючи зберігання конфігураційних файлів, баз даних, логів та інших важливих даних. У цій лекції ми розглянемо, як монтувати томи у контейнери, і покажемо практичні приклади.
Основи монтування томів
Томи, як ми вже згадували, існують незалежно від життєвого циклу контейнерів. Вони зберігаються у спеціальній директорії на хостовій машині і можуть бути підключені до будь-якого контейнера.
Команда для монтування томів
Томи монтуються у контейнери за допомогою параметрів -v або --mount при запуску контейнера.
3.2 Параметр -v
Приклади використання параметра -v
1. Монтування тому в контейнер
Створення тому та його монтування в контейнер:
Створення тому:
docker volume create my_volume
Запуск контейнера з монтуванням тому:
docker run -d --name my_container -v my_volume:/app nginx
У цьому прикладі том my_volume монтується в директорію /app контейнера my_container
2. Монтування декількох томів
Ви можете монтувати кілька томів в один контейнер:
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
docker run -d --name my_container --mount source=my_volume,target=/app nginx
Цей приклад аналогічний попередньому прикладу з -v, але використовує більш детальний синтаксис.
2. Монтування з додатковими параметрами
docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx
У цьому прикладі том монтується у режимі тільки для читання (readonly).
3.4 Практичні приклади
Приклад 1: Використання томів для бази даних
Створення і використання тому для зберігання даних бази даних.
Створення тому:
docker volume create db_data
Запуск контейнера бази даних з монтуванням тому:
docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v
db_data:/var/lib/postgresql/data postgres
У цьому прикладі дані бази даних PostgreSQL зберігаються у томі db_data.
Приклад 2: Використання томів для конфігураційних файлів
Створення тому для зберігання конфігураційних файлів і монтування його у контейнер.
Створення тому:
docker volume create config_data
Копіювання конфігураційних файлів у том:
docker run --rm -v config_data:/app busybox sh -c "echo 'configuration data' > /app/config.txt"
Запуск контейнера з використанням тому для конфігураційних файлів:
docker run -d --name my_app -v config_data:/app/config nginx
У цьому прикладі конфігураційні файли зберігаються у томі config_data, який монтується у директорію /app/config контейнера.
Приклад 3: Логи контейнера
Створення тому для зберігання логів контейнера і монтування його у контейнер.
Створення тому:
docker volume create logs_data
Запуск контейнера з монтуванням тому для логів:
docker run -d --name my_app -v logs_data:/var/log/nginx nginx
У цьому прикладі логи Nginx зберігаються у томі logs_data.
3.5 Перевірка вмісту томів
Ти можеш перевірити вміст тому, змонтувавши його у тимчасовий контейнер.
Приклад
Запуск тимчасового контейнера з монтуванням тому:
docker run --rm -v my_volume:/app busybox ls /app
Цей приклад покаже вміст тому my_volume.
Видалення томів
Видалення тому, який більше не використовується.
Приклад
Видалення тому:
docker volume rm my_volume
Якщо том використовується контейнером, Docker видасть помилку. Переконайся, що контейнери, які використовують цей том, зупинені та видалені.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ