Я часто начинаю временные контейнеры для передачи данных между локальной файловой системой и объемами контейнеров. Или иногда между томами. И весь процесс немного утомитель. Запуск временного контейнера, устанавливая громкость, устанавливая локальную файловую систему и, наконец, передавая данные.
Поэтому я сделал сценарий Python, который делает это легким. Я называю это CVCP
– Объем контейнера CP (копия). На самом деле он не использует CP
хотя. Он использует rsync
Для передачи данных. Таким образом, необходимо иметь изображение контейнера с rsync
установлены.
Вы можете найти скрипт в https://github.com/jeet-parekh/cvcp . Репозиторий также содержит Dockerfile
который построит изображение с rsync
установлены.
Использование CVCP
Загрузите файл CVCP
Из репозитория и поместите его в ваш предпочтительный путь. Я предпочитаю ~/bin
Анкет
Затем использовать CVCP
:
cvcp SOURCE DESTINATION
Путь внутри тома контейнера должен быть записан как
Анкет
Либо Источник
или Пункт назначения
Может быть локальный путь или путь внутри объема контейнера. Обратите внимание, однако, что оба Источник
и Пункт назначения
не может быть местными путями.
Если вы используете CVCP
Без каких -либо вариантов это вытянет rsync
Изображение из Docker Hub и будет использовать Docker с корнем ( sudo docker
).
Для настройки поведения доступны следующие параметры командной строки:
-Докер
и-Подман
- Контейнерный двигатель для использования.
- По умолчанию
Docker
Анкет
-Рутская
- Используйте контейнерный двигатель без корня (без
sudo
).
- Используйте контейнерный двигатель без корня (без
--изображение
- Изображение контейнера, которое будет использоваться.
- Обратите внимание, что изображение должно иметь
rsync
установлены. Прочитайте следующий раздел для более подробной информации.
-rsync-opts
- Параметры, чтобы перейти к
rsync
. - Обратите внимание, что вам нужно передать все параметры в виде цитируемой строки с пространством в начале Анкет Например,
' -verbose'
Анкет - Использование этой опции очистит по умолчанию
rsync
Параметры, используемыеCVCP
, поэтому обязательно пройдите все необходимые варианты. - Параметры по умолчанию
'-a -progress'
Анкет
- Параметры, чтобы перейти к
--нет Exec
- Распечатать команду и выйти.
Использование пользовательского изображения
Чтобы использовать пользовательское изображение с CVCP
, используйте -image
аргумент
Чтобы навсегда изменить изображение по умолчанию, которое CVCP
Использует, измените эту линию в CVCP
Файл скрипта:
RSYNC_IMAGE = "image_name"
Необходимо, чтобы ваше пользовательское изображение имело rsync
установлены. Вы можете использовать Dockerfile внутри того же репозитория, что и основание для построения изображения.
# docker sudo docker build -t localhost/rsync . # podman podman build -t localhost/rsync .
Оригинал: “https://dev.to/jeetparekh/transferring-data-across-docker-podman-volumes-3c9a”