2016-08-09 4 views
0

Возможно скопировать файлы на локальную машину, запустив команду внутри контейнера докера. Я знаю docker cp <containerId>:container/file/path /host/file/path Однако, я понимаю, что это нужно запускать из-за пределов контейнера докера. Есть ли способ сделать это или что-то подобное изнутри?Скопируйте файлы из контейнера докеров на локальный компьютер

В каком-то контексте у меня есть скрипт python, который запускается внутри контейнера докера, с чем-то вроде следующей команды docker run -ti -rm --net=host buildServer:5000/myProgram /myProgram.py -h. Я хотел бы получить файлы, созданные из этой программы, чтобы их можно было редактировать. Я мог запустить контейнер докера в отдельном режиме, docker cp нужный файл и выключение контейнера. Тем не менее, я хотел бы уметь отвлечь это от пользователя.

ответ

0

Докеры-контейнеры по дизайну не имеют доступа к файловой системе хоста, если вы не предоставите ее явно через томовые крепления. Таким образом, в вашем примере, вы могли бы сделать что-то вроде:

docker run -ti -v /tmp/data:/data -rm --net=host buildServer:5000/myProgram /myProgram.py -h 

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

Предполагается, что вы используете Docker в Linux. Если вы используете Windows или OS X, могут быть дополнительные шаги, поскольку в этих средах Docker фактически работает на виртуальной машине Linux, и доступ к тому может или не может вести себя должным образом (я не использую эти платформы, поэтому я не могу комментарий авторитетно).

Для получения дополнительной информации:

Смежные вопросы