Какие виды томов (volumes) в Docker вы знаете?

«Какие виды томов (volumes) в Docker вы знаете?» — вопрос из категории Docker, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Docker существует несколько типов томов для управления данными контейнеров:

  • Bind Mount: Прямое монтирование файла или директории с хоста в контейнер. Указывается абсолютный путь.
    docker run -v /home/user/app:/app nginx
  • Named Volume: Управляемый Docker именованный том. Лучший способ для сохранения данных, генерируемых контейнером.
    docker volume create app_data
    docker run -v app_data:/var/lib/mysql mysql
  • Anonymous Volume: Том, создаваемый Docker автоматически, если в команде -v указан только путь в контейнере. Управляется сложнее, так как имеет случайное имя.
    docker run -v /var/cache nginx
  • tmpfs Mount: Монтирует том в оперативную память хоста. Данные существуют только на время жизни контейнера.
    docker run --tmpfs /tmp app

Практический выбор: Для конфигурации или исходного кода использую Bind Mount. Для данных БД или состояния приложения — Named Volume. Для временных, чувствительных данных — tmpfs.