Копирование файлов из контейнера в локальный с помощью сценария оболочки

#docker #shell #dockerfile

#docker #оболочка #dockerfile

Вопрос:

Я пытаюсь написать сценарий оболочки, который создает / запускает контейнеры, а затем копирует файлы из контейнера docker на хост.

 docker build . -t container:latest
docker run -t -d container /bin/bash
docker cp container_id:/xyz/xyz.txt /tmp
 

Как я могу получить идентификатор контейнера из сборки, а затем использовать его в сценарии оболочки? Спасибо за вашу помощь.

Ответ №1:

Первым вариантом было бы просто сохранить идентификатор контейнера в переменной.

 docker build . -t container:latest
container_id="$(docker run -t -d container /bin/bash)"
docker cp "$container_id":/xyz/xyz.txt /tmp
 

Docker также позволяет указать имя контейнера.

 docker build . -t container:latest
docker run -t --name NAME -d container /bin/bash
docker cp NAME:/xyz/xyz.txt /tmp