Копирование файлов в Docker с помощью команды Docker copy
Команда docker copy в Docker используется для копирования файлов и папок между хостом и контейнером, а также между контейнерами. Она позволяет передавать данные внутрь контейнера или извлекать их из него.
Формат команды docker copy выглядит следующим образом:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Здесь CONTAINER - это идентификатор или имя контейнера, а SRC_PATH и DEST_PATH - пути к файлам или папкам внутри контейнера.
Пример 1. Копирование из контейнера на хост:
docker cp mycontainer:/path/to/file.txt /host/path/file.txt
В данном примере мы копируем файл file.txt из контейнера mycontainer в папку /host/path на хосте.
Пример 2. Копирование на контейнер из хоста:
docker cp /host/path/file.txt mycontainer:/path/to/file.txt
В этом примере мы копируем файл file.txt из папки /host/path на хосте внутрь контейнера mycontainer по пути /path/to/file.txt.
Пример 3. Копирование между контейнерами:
docker cp source-container:/path/to/file.txt destination-container:/path/to/file.txt
Этот пример показывает копирование файла file.txt из контейнера source-container в контейнер destination-container.
Помимо базовой команды, docker copy также поддерживает несколько опций, которые могут уточнить поведение команды. Некоторые из них:
-L, --follow-link: следовать по символическим ссылкам и копировать файлы, на которые они указывают.--chown[=USER:GROUP]: устанавливает владельца и группу для скопированных файлов и папок.-p, --preserve: поддерживает метаданные файлов (время создания, права доступа и т. д.) при копировании.
Пример 4. Копирование директории с сохранением метаданных:
docker cp -p mycontainer:/path/to/directory /host/path/
Здесь мы скопируем директорию /path/to/directory из контейнера mycontainer в папку /host/path на хосте, при этом сохраняя метаданные файлов.
Также, docker copy полезна в сценариях автоматизации, где вы можете использовать ее в составе скриптов или в CI/CD-средах для удобной передачи артефактов или конфигурационный файлов внутрь контейнеров.
Данная команда является незаменимым инструментом для работы с данными в Docker и предоставляет гибкость и удобство взаимодействия с файловой системой внутри контейнеров.