0Pricing
DevOps Bootcamp · Урок

Монтирование каталогов и tmpfs

Изучите монтирование каталогов для доступа к файлам хоста и монтирование tmpfs для хранения временных данных.

«Монтирование каталогов и tmpfs» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Хранение данных за пределами томов

На предыдущих уроках мы узнали о томах Docker для хранения данных с сохранением. Но что делать, если Вам нужно напрямую предоставить контейнеру доступ к файлам с хост-компьютера или сохранить временные данные, которые не должны сохраняться надолго?

В этом уроке рассматриваются ещё два способа управления данными: монтирование каталогов и монтирование tmpfs. Они обеспечивают гибкость для разных сценариев использования.

Монтирование каталогов и tmpfs — иллюстрация 1

Что такое монтирование каталогов

Монтирование каталога позволяет подключить файл или каталог с хост-компьютера к контейнеру. При этом создаётся прямая связь: изменения на одной стороне сразу отражаются на другой.

  • Путь на хосте: расположение на Вашем компьютере.
  • Путь в контейнере: расположение внутри контейнера.
  • Идеально подходит для разработки, совместного использования конфигурации и доступа к файлам хоста.

Монтирование каталогов на практике

Рассмотрим монтирование каталога на практике. Эта команда монтирует текущий каталог (обозначаемый как $(pwd) в Linux/macOS или %cd% в Windows CMD) в каталог /app контейнера.

Примечание: Перед запуском создайте в текущем каталоге файл с именем hello.txt и запишите в него, например, текст "Hello from host!".

docker run --rm -it \
  -v "$(pwd):/app" \
  alpine:latest sh -c "ls /app && cat /app/hello.txt"

Монтирование каталогов только для чтения

Иногда требуется предоставить контейнеру доступ к данным с хоста, но запретить ему вносить изменения. В этом случае пригодится монтирование только для чтения.

Для этого можно указать :ro в конце пути монтирования или использовать флаг --mount со значением readonly.

docker run --rm -it \
  -v "$(pwd):/app:ro" \
  alpine:latest sh -c "touch /app/new_file.txt || echo 'Permission denied!'"

Понимание вывода при доступе только для чтения

При запуске предыдущей команды Вы должны были увидеть сообщение "Permission denied!". Это подтверждает, что контейнер не смог создать новый файл в каталоге /app, поскольку каталог был смонтирован только для чтения.

Это отличная функция безопасности, защищающая файлы хоста от случайных или вредоносных изменений со стороны контейнера.

Что такое монтирование tmpfs

Монтирование tmpfs — это временная файловая система, полностью хранящаяся в памяти хоста (RAM). Поэтому данные, записанные в tmpfs, не сохраняются.

  • Данные теряются при остановке контейнера.
  • Операции ввода-вывода выполняются быстрее по сравнению с хранением на диске.
  • Подходит для конфиденциальных и временных данных.

Монтирование tmpfs на практике

Создадим контейнер с монтированием tmpfs. Запишем в него файл, а затем выйдем из контейнера. При запуске нового контейнера этот файл исчезнет.

Флаг --tmpfs задаёт точку монтирования внутри контейнера.

docker run --rm -it \
  --tmpfs /app/temp_data \
  alpine:latest sh -c "echo 'Ephemeral data' > /app/temp_data/my_temp_file.txt && ls /app/temp_data"

Проверка временной природы tmpfs

После выполнения последней команды Вы увидели в списке my_temp_file.txt. Теперь выполните эту команду, чтобы запустить *новый* контейнер с *той же* конфигурацией монтирования tmpfs.

Вы заметите, что файла my_temp_file.txt больше нет. Это подтверждает, что данные tmpfs действительно являются временными и существуют только в течение жизненного цикла контейнера.

docker run --rm -it \
  --tmpfs /app/temp_data \
  alpine:latest ls /app/temp_data

Монтирование каталогов и tmpfs: сравнение

Когда следует использовать каждый вариант?

  • Монтирование каталогов: для предоставления контейнерам доступа к файлам хоста (например, к конфигурации и исходному коду) с сохранением данных и прямым доступом к хосту.
  • Монтирование tmpfs: для временных данных без сохранения, которым требуется высокая производительность или которые не должны переживать перезапуск контейнера (например, для кэшей и конфиденциальных данных во время работы).

Оба варианта дополняют тома Docker и предоставляют полный набор возможностей управления данными.

Быстрая проверка: типы монтирования

Какие из следующих утверждений о монтировании каталогов и монтировании tmpfs верны?

Итоги: инструменты управления данными

Отличная работа! Вы расширили свой набор инструментов для управления данными Docker.

  • Монтирование каталогов связывает файлы и каталоги хоста с контейнерами и отлично подходит для разработки и совместного использования конфигурации.
  • Монтирование tmpfs предоставляет временное хранилище в памяти, идеально подходящее для данных без сохранения или конфиденциальных данных.

Понимание этих вариантов поможет Вам выбрать подходящее хранилище для приложений, работающих в контейнерах.

Часто задаваемые вопросы

Урок «Монтирование каталогов и tmpfs» бесплатный?

Да — полный текст урока «Монтирование каталогов и tmpfs» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Монтирование каталогов и tmpfs»?

Изучите монтирование каталогов для доступа к файлам хоста и монтирование tmpfs для хранения временных данных. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Монтирование каталогов и tmpfs»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы сетевого взаимодействия контейнеров
  2. Тома Docker для сохранения данных
  3. Монтирование каталогов и tmpfs
  4. Пользовательские мостовые сети и обнаружение служб
← Назад к DevOps Bootcamp