
egghead
Проект egghead.io представляет огромный выбор курсов и скринкастов для разработчиков любого уровня и профессии.
Create Docker Volumes for Persistent Storage
Постоянное хранение данных — ключевой элемент работы с контейнерами. В этом материале вы узнаете, как использовать Docker томы (volumes), копировать файлы в контейнеры и связывать локальные директории с контейнерами, чтобы данные сохранялись даже после перезапуска.
Docker использует собственный механизм хранения данных — томы. Это самый надежный и предпочтительный способ обеспечить долговечность файлов, к которым обращается контейнер.
Перед созданием тома иногда требуется перенести существующие файлы в контейнер. Docker предоставляет несколько способов выполнить это.
Этот подход удобен, если нужно добавить или обновить отдельные файлы:
docker cp ./local-file.txt container_name:/app/local-file.txt
Bind mount — это прямое подключение локальной директории к контейнеру:
docker run -v $(pwd)/data:/app/data my-image
Файлы на хосте обновляются мгновенно и доступны в контейнере.
Для долговременного хранения лучше использовать именно томы, а не bind-монты.
docker volume create my_volume
docker run -v my_volume:/app/data my-image
Чтобы загрузить файлы в созданный том, можно использовать временный контейнер:
docker run --rm -v my_volume:/data -v $(pwd)/backup:/backup busybox cp -r /backup/* /data/
При разработке удобно подключать локальную папку, чтобы изменения автоматически отражались внутри контейнера.
docker run -v $(pwd)/src:/app/src my-image
Использование Docker томов значительно упрощает работу с данными, делая их независимыми от жизненного цикла контейнеров. Освоение копирования файлов, создания томов и подключения локальных директорий помогает выстроить удобный и надёжный рабочий процесс.

Проект egghead.io представляет огромный выбор курсов и скринкастов для разработчиков любого уровня и профессии.