Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Docker: filesystem

Как контейнер работает с файловой системой?

Этот вопрос проверяет понимание того, как контейнеры изолируют файловую систему и как данные живут внутри и вне контейнера.

Короткий ответ

Контейнер использует собственную изолированную файловую систему, основанную на слоях образа. Эти слои в основном доступны только для чтения, а поверх них создаётся тонкий слой записи контейнера. Данные, записанные в этот слой, пропадут после удаления контейнера. Для сохранения данных используют volume или bind mount.

Длинный ответ

Контейнер не имеет “своего диска” в привычном смысле, он работает с файловой системой, собранной из слоёв.

Определение

Файловая система контейнера — это объединение read-only слоёв образа и writable слоя конкретного контейнера.

Из чего состоит файловая система контейнера

  1. Слои образа

    • Каждый слой — результат инструкции Dockerfile.

    • Слои read-only и переиспользуются между контейнерами.

  2. Writable layer контейнера

    • Создаётся при запуске контейнера.

    • Все изменения файлов пишутся сюда.

Схематично:

  • Образ: слой 1 → слой 2 → слой 3 (read-only)

  • Контейнер: + слой записи (writable)

Что происходит при записи файла

  1. Файл не меняется в слоях образа.

  2. В writable layer создаётся копия файла (copy-on-write).

  3. Все изменения происходят только в контейнере.

Почему данные пропадают

  • Удалили контейнер → удалился его writable layer.

  • Образ остаётся, данные контейнера — нет.

Как сохраняют данные

1) Volume

  • Управляется Docker.

  • Данные живут независимо от контейнера.

  • Рекомендуемый способ для БД и важных данных.

2) Bind mount

  • Прямая связь с директорией хоста.

  • Удобно для разработки.

  • Меньше изоляции.

Пример запуска:

docker run -v mydata:/app/data my-image

Вывод

Файловая система контейнера эфемерна, поэтому любые важные данные нужно выносить во внешние хранилища — volume или bind mount.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Docker

    Docker

Ключевые слова

#filesystem

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.