Подробная инструкция по работе с томами (volumes) в Docker

Оцените статью

В данной инструкции мы рассмотрим основные операции, связанные с использованием томов (volumes) в Docker — от создания и подключения до их удаления.

Что такое volume?

Том (volume) в Docker представляет собой механизм для хранения данных вне контейнеров. В отличие от bind mounts, которые просто привязывают директорию хоста к каталогу внутри контейнера, volumes имеют следующие особенности:

  • Они создаются и управляются непосредственно самим Docker’ом;
  • Хранятся отдельно от файловой системы хост-машины;
  • Данные сохраняются даже после уничтожения или перезапуска контейнеров;
  • Могут быть совместно использованы несколькими контейнерами одновременно.

Основные команды работы с томами

  1. Создание нового тома
    Чтобы создать новый том, используйте команду docker volume create:
   # docker volume create my_volume

Здесь «my_volume» – имя создаваемого тома.

  1. Просмотр списка существующих томов
    Для просмотра всех созданных томов используется команда:
   # docker volume ls
  1. Получение подробной информации о конкретном томе
    Если нужно узнать детали конкретного тома (например, путь на хосте), выполните следующую команду:
   # docker volume inspect my_volume
  1. Подключение тома к контейнеру при запуске
    Когда вы создаете или запускаете контейнер, можно указать подключение тома через опцию —mount. Например:
   # docker run -d --name my_container --mount source=my_volume,target=/app nginx

Или используя более старый синтаксис (-v) без дополнительных параметров:

   # docker run -d --name my_container -v my_volume:/app nginx
  1. Использование анонимных томов
    Анонимные тома автоматически генерируются при использовании опции -v, если не указан явно источник:
   # docker run -d --name my_container -v /app nginx

Однако этот подход менее предпочтителен из-за сложности управления такими томами.

  1. Удаление тома
    Удалить ненужный том можно командой:
   # docker volume rm my_volume
  1. Автоматическое удаление тома при удалении контейнера
    По умолчанию томы остаются после удаления контейнера. Но есть возможность удалить связанный том вместе с контейнером, добавив флаг —rm при создании контейнера и указав тип тома как временное хранилище:
   # docker run -d --name my_container --rm --mount type=tmpfs,destination=/app nginx
  1. Копирование файлов между хостом и томом
    При необходимости скопировать файлы внутрь тома можно использовать два подхода:
  • Подключив контейнер к тому и выполнив копирование изнутри контейнера:
    # docker exec -it my_container bash cp /path/to/file /app/ exit
  • Через утилиту docker cp напрямую:
    # docker cp ./local_file.txt my_container:/app/
  1. Обновление конфигурации подключенных томов
    Иногда может понадобиться изменить параметры уже существующего тома. Прямо поменять нельзя, но можно сделать это следующим образом:
  • Остановить контейнер, который использует том:
    # docker stop my_container
  • Создать копию того же объема под другим именем и подключить его к контейнеру вместо старого тома:
    # docker volume create new_my_volume # Перезапустить контейнер с новым томом
    # docker start -a --mount source=new_my_volume,target=/app my_container
  1. Проверка использования пространства тома
    Можно проверить сколько места занимает конкретный том:
    # df -h | grep <путь_тома>
    Путь тома можно получить командой inspect.

Вот собственно и все, таким образом, следуя этой инструкции, вы сможете эффективно управлять данными ваших приложений в Docker с помощью томов.

Похожие записи

Конфигурация MySQL для микро-vps (минимизация потребления памяти)

Давайте немного поэкспериментируем с Микро-VPS. Из коробки MySQL сконфигурирован для автоматической подстройки под окружение, но на совсем ограниченных ресурсах я стабильно ловлю OOM-Killer и мне это не нравится, а переплачивать…

Подробная инструкция по локальной установке Next Cloud server в Ubuntu 24.04 с использованием Nginx и PHP-FPM

Nextcloud — это бесплатное и открытое программное обеспечение для создания собственного облачного хранилища данных. Оно позволяет пользователям хранить файлы, синхронизировать их между устройствами, делиться ими с другими пользователями, а также…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Конфигурация MySQL для микро-vps (минимизация потребления памяти)

Конфигурация MySQL для микро-vps (минимизация потребления памяти)

Подробная инструкция по локальной установке Next Cloud server в Ubuntu 24.04 с использованием Nginx и PHP-FPM

Подробная инструкция по локальной установке Next Cloud server в Ubuntu 24.04 с использованием Nginx и PHP-FPM

Руководство по установке и настройке Gitea: от Docker до локальной инсталляции на Ubuntu 24.04

Руководство по установке и настройке Gitea: от Docker до локальной инсталляции на Ubuntu 24.04

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Немного о настройке UFW в Ubuntu: от основ до продвинутых правил

Немного о настройке UFW в Ubuntu: от основ до продвинутых правил