Управление данными с помощью томов Docker
Поймите, почему контейнеры теряют данные при удалении, и узнайте, как сохранять и совместно использовать данные с помощью томов Docker и монтирования каталогов.
«Управление данными с помощью томов Docker» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Контейнеры недолговечны
Контейнеры являются недолговечными: всё записанное в них хранится внутри контейнера, а его удаление стирает эти данные. Для приложений без состояния это подходит, но базе данных нужно сохранять свои данные.
Доступный для записи слой
У каждого контейнера поверх образа есть тонкий доступный для записи слой. Записи попадают в него, но он связан со временем существования контейнера: удалите контейнер — и этот слой исчезнет.
Два способа сохранять данные
Docker предлагает два способа сохранять данные: тома (управляемые Docker) и монтирование каталогов хоста (подключение каталога хоста). По умолчанию рекомендуется использовать тома.
Создание тома
Создайте именованный том одной командой docker volume create. Docker сам определит, где физически его разместить, поэтому Вам не придётся делать это вручную.
docker volume create app-dataМонтирование тома
Подключите том с помощью -v, используя volumeName:/path/in/container. Теперь всё записанное по этому пути будет сохраняться в томе.
docker run -d -v app-data:/var/lib/data myimageДанные сохраняются после удаления
Поскольку том не зависит от контейнера, Вы можете удалить контейнер, запустить новый с тем же томом — и Ваши данные останутся на месте.
docker rm -f mycontainer
docker run -d -v app-data:/var/lib/data myimageМонтирование каталогов хоста для локальной разработки
Монтирование каталога хоста подключает каталог хоста к контейнеру — это идеально для разработки: изменения кода на Вашем компьютере сразу появляются внутри контейнера.
docker run -v /Users/me/project:/app node:20Тома и монтирование каталогов хоста
Выбирайте способ в зависимости от задачи: тома подходят для переносимых данных в рабочей среде, которыми управляет Docker; монтирование каталогов хоста — для разработки, когда Вам нужен точный путь на хосте и полный контроль.
Просмотр сведений о томах
docker volume ls выводит список томов, а docker volume inspect показывает подробные сведения, в том числе фактическое расположение данных на диске.
docker volume ls
docker volume inspect app-dataОбщий доступ к данным между контейнерами
Подключите один том к нескольким контейнерам, и они смогут совместно использовать файлы — например, контейнер приложения и контейнер резервного копирования могут читать одни и те же данные.
docker run -v shared:/data writer
docker run -v shared:/data readerОчистка
Неиспользуемые тома занимают место на диске. Удалите том с помощью docker volume rm или очистите неиспользуемые тома командой docker volume prune — будьте осторожны, поскольку это безвозвратно удаляет данные.
docker volume rm app-data
docker volume pruneБыстрая проверка
Проверьте, насколько хорошо Вы поняли работу с данными Docker.
Итоги
Вы научились сохранять данные: контейнеры недолговечны, тома переживают удаление контейнеров и монтируются с помощью -v name:/path, а монтирование каталогов хоста удобно для разработки.
Изучай DevOps Bootcamp с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 142
- Уроки
- 568
Часто задаваемые вопросы
Урок «Управление данными с помощью томов Docker» бесплатный?
Да — полный текст урока «Управление данными с помощью томов Docker» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Управление данными с помощью томов Docker»?
Поймите, почему контейнеры теряют данные при удалении, и узнайте, как сохранять и совместно использовать данные с помощью томов Docker и монтирования каталогов. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Управление данными с помощью томов Docker»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое контейнеры?
- Установка Docker Desktop
- Ваш первый контейнер Docker
- Управление данными с помощью томов Docker