>운영 및 유지보수 >Docker >Docker에서 파일을 복사하는 방법은 무엇입니까? 어디로 복사하시겠습니까?

Docker에서 파일을 복사하는 방법은 무엇입니까? 어디로 복사하시겠습니까?

PHPz
PHPz원래의
2023-04-18 14:10:182797검색

Docker는 애플리케이션을 생성, 배포 및 실행하기 위한 오픈 소스 플랫폼입니다. 핵심 아이디어는 다양한 환경에서 쉽게 배포하고 실행할 수 있도록 애플리케이션과 해당 종속성을 모두 컨테이너에 패키징하는 것입니다. Docker를 사용하는 과정에서 컨테이너에 파일을 복사해야 하는 경우가 종종 있습니다. 이 기사에서는 Docker에서 파일을 복사하는 방법에 대해 설명합니다.

가장 일반적으로 사용되는 첫 번째 방법은 Docker의 cp 명령을 사용하여 파일을 복사하는 것입니다. cp 명령어의 구문은 다음과 같습니다.

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

그 중 CONTAINER는 컨테이너의 이름이나 ID를 의미하며, SRC_PATH는 컨테이너 내부의 소스 파일 경로, DEST_PATH는 컨테이너 외부의 대상 파일 경로를 의미합니다. DEST_PATH를 "-"로 설정하면 화면에 출력한다는 의미입니다.

예를 들어 로컬 파일 /root/abc.txt를 mycontainer라는 컨테이너에 복사하고 /tmp/def.txt로 저장해야 한다고 가정하면 다음 명령을 실행할 수 있습니다.

docker cp /root/abc.txt mycontainer:/tmp/def.txt

마찬가지로, 컨테이너의 /var/log/app.log 파일을 로컬 /tmp 디렉터리에 복사해야 합니다. 다음 명령을 실행할 수 있습니다.

docker cp mycontainer:/var/log/app.log /tmp

Docker cp 명령을 사용하는 것 외에도 ADD 또는 Dockerfile의 COPY 명령입니다. ADD 및 COPY 명령은 모두 빌드 컨텍스트(즉, Dockerfile이 있는 디렉터리)에서 컨테이너로 소스 파일을 복사할 수 있습니다.

ADD 명령의 구문은 다음과 같습니다.

ADD [--chown=<user>:<group>] <src>... <dest>

그 중 --chown 매개변수는 파일 복사 시 파일을 설정하는 사용자 및 그룹을 나타냅니다. 매개변수를 지정하지 않으면 Dockerfile이 있는 사용자 및 그룹이 사용됩니다.

COPY 지시문의 구문은 다음과 같습니다.

COPY [--chown=<user>:<group>] <src>... <dest>

ADD 지시문과 유사하게 --chown 매개변수를 사용하여 파일의 소유권을 지정할 수도 있습니다.

예를 들어 ADD 명령은 다음 Dockerfile에서 로컬 파일 app.jar을 컨테이너의 /app 디렉터리에 복사하는 데 사용됩니다.

FROM ubuntu
ADD app.jar /app/app.jar

마찬가지로 다음 Dockerfile에서는 COPY 명령을 사용하여 로컬 디렉터리를 복사합니다. conf를 컨테이너의 /app 디렉터리에 추가합니다. /conf 디렉터리:

FROM ubuntu
COPY --chown=user:group conf /app/conf

ADD 또는 COPY 명령을 사용할 때 파일이나 디렉터리의 소유자 및 권한이 호스트의 파일 시스템을 통해 컨테이너로 전달된다는 점에 유의해야 합니다. 호스트 파일 시스템의 파일 또는 디렉터리 소유권이 잘못된 경우 복사된 파일 또는 디렉터리에도 권한 문제가 발생합니다.

요약하자면, Docker에서 파일을 복사하려면 Dockerfile에서 Docker cp 명령과 ADD 또는 COPY 명령을 사용할 수 있습니다. 위의 방법을 통해 Docker에서 파일 복사 작업을 효과적으로 수행할 수 있습니다.

위 내용은 Docker에서 파일을 복사하는 방법은 무엇입니까? 어디로 복사하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.