Подробное объяснение и реальный случай команды копирования файла в Docker
Краткое описание:
Docker — это популярная платформа контейнеризации, предоставляющая легкое портативное решение для развертывания и запуска приложений в различных средах. В Docker копирование файлов — это обычная операция, позволяющая копировать файлы из хост-системы в контейнер или из контейнера в хост-систему. В этой статье будут подробно объяснены команды, связанные с копированием файлов в Docker, и проиллюстрированы реальными случаями.
- Команды копирования файлов в Docker
Docker предоставляет две основные команды для операций копирования файлов:docker cp
иCOPY
инструкции. Использование и значения параметров этих двух команд будут подробно объяснены ниже.
1.1 docker cp
Команды
docker cp
Команды используются для копирования файлов из хост-системы в работающий контейнер или копирования файлов из контейнера в хост-систему.
Формат команды:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Описание параметра:
OPTIONS
: необязательный параметр, используемый для указания некоторых дополнительных параметров, например-a
указания того, что разрешения и атрибуты скопированного файла остаются неизменными.CONTAINER
: имя или идентификатор контейнера.SRC_PATH
: путь к исходному файлу, который может быть путем в хост-системе или в контейнере.DEST_PATH
: путь к целевому файлу, который может быть путем в хост-системе или в контейнере.
Пример использования: скопируйте файл
в хост-системе по пути в контейнере с именем ./path/to/file.txt
mycontainer
/app/file.txt
docker cp /path/to/file.txt mycontainer:/app/file.txt
mycontainer
Скопируйте файлы в контейнер, указанный по пути /app/file.txt
в хост-системе /path/to/destination
.
docker cp mycontainer:/app/file.txt /path/to/destination
1.2 COPY
Директивы
COPY
Директивы — это команды, используемые в Dockerfile для копирования файла из хост-системы в контейнер.
Формат инструкции:
COPY [--chown=<user>:<group>] <src>... <dest>
Описание параметра:
--chown=<user>:<group>
: Необязательный параметр, используемый для указания пользователя и группы пользователей при копировании файлов.<src>
: путь к исходному файлу, который может быть путем в хост-системе или относительным путем в каталоге, где находится файл Dockerfile.<dest>
: Путь к целевому файлу, указывающий путь в контейнере.
Пример использования: скопируйте файл
в хост-системе по пути в контейнере в Dockerfile./path/to/file.txt
/app/file.txt
COPY /path/to/file.txt /app/file.txt
- Анализ реального случая
Чтобы лучше понять метод использования и значение параметров команды копирования файла, мы проанализируем ее на реальном примере.
Предположим, у нас есть приложение на основе Node.js, и нам нужно скопировать файлы исходного кода из хост-системы в контейнер Docker и запустить его в контейнере. Для достижения этой цели мы можем использовать COPY
директивы.
Сначала мы создаем каталог в хост-системе app
с именем и помещаем в него файлы исходного кода. Затем используйте директиву в Dockerfile COPY
, чтобы app
скопировать все файлы из каталога по /usr/src/app
пути в контейнере.
Содержимое Dockerfile следующее:
FROM node:14
WORKDIR /usr/src/app
COPY app/ .
CMD [ "node", "app.js" ]
При создании образа Docker движок Docker скопирует app
все файлы из каталога по /usr/src/app
пути в контейнере. Затем мы можем запустить приложение в контейнере.
Вывод:
В этой статье подробно объясняются команды, связанные с копированием файлов в Docker, и объясняются это на реальных примерах. Используя docker cp
команды и COPY
инструкции, мы можем легко копировать файлы между хост-системой и контейнером. Знание того, как использовать эти команды и что означают их параметры, очень важно для разработки и развертывания приложений в Docker.