Подробная инструкция по работе с томами (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 с помощью томов.

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

zVirt работа с шаблонами виртуальных машин

ZVirt – это платформа для управления виртуальными машинами (ВМ), позволяющая создавать, редактировать и использовать шаблоны ВМ в качестве основы для быстрого развертывания новых экземпляров. Что такое шаблон виртуальной машины? Шаблон…

Сетевые возможности Docker

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

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

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

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

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

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

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

Сетевые возможности Docker

Сетевые возможности Docker

Подготовка LAMP VPS-сервера и установка Media Wiki

Подготовка LAMP VPS-сервера и установка Media Wiki

Запуск Next Cloud в облаке Selectel

Запуск Next Cloud в облаке Selectel

Установка RED OS в режиме Dual Boot с Windows

Установка RED OS в режиме Dual Boot с Windows