Рубрики
Без рубрики

Передача данных по объемам Docker или Podman

Я часто начинаю временные контейнеры для передачи данных между локальной файловой системой и … Tagged с Docker, Python, DevOps.

Я часто начинаю временные контейнеры для передачи данных между локальной файловой системой и объемами контейнеров. Или иногда между томами. И весь процесс немного утомитель. Запуск временного контейнера, устанавливая громкость, устанавливая локальную файловую систему и, наконец, передавая данные.

Поэтому я сделал сценарий 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”