Действительно, docker cp
не поддерживает шаблоны глобов , и, кроме того, пути контейнера абсолютные :
Команда docker cp
предполагает, что пути к контейнерам относятся к каталогу /
(root) контейнера.Это означает, что указание начального прямого слеша необязательно […]
Пути к локальным машинам могут быть абсолютным или относительным значением.Команда интерпретирует относительные пути локального компьютера как относящиеся к текущему рабочему каталогу, в котором выполняется docker cp
.
Однако можно найти обходной путь, полагаясь на docker exec
и вручную созданная команда оболочки, основанная на команде tar
с обеих сторон (при условии, что она доступна на изображении):
sudo docker exec env1_1 sh -c 'cd /path && tar cf - *.txt' | tar xvf -
или при необходимости:
sudo docker exec env1_1 sh -c 'cd /path && tar cf - *.txt' | ( cd /dest/path && tar xvf - )
Здесь специальное имя файла -
обозначает STDOUT (или, соответственно, STDIN).
Обычный отказ от ответственности: последняя команда tar
будет перезаписывать без дополнительного уведомления выбранные файлы в текущей папке (или /dest/path
во втором примере).