Скопируйте файлы .txt из контейнера Docker на хост - PullRequest
1 голос
/ 28 сентября 2019

Итак, у меня есть докер-контейнер с файлами .txt и .csv.Мне нужно скопировать их на хост.Но мне нужно только скопировать файлы .txt.Команда sudo docker cp -a env1_1:/path/*.txt ., похоже, не работает.Возможно ли копирование файлов определенного типа с помощью Docker CP?Пока я не могу найти альтернативы.

Есть предложения?

Спасибо.

1 Ответ

1 голос
/ 28 сентября 2019

Действительно, 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 во втором примере).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...