August 21, 2019

Docker cp - 컨테이너 및 호스트에 파일 복사

Docker cp - Container file copy

해당 명령은 "호스트->컨테이너로 파일 복사" 또는 "컨테이너->호스트에 있는 파일 복사" 할 때 사용할 수 있습니다.

즉, 호스트가 컨테이너 내부에 존재하는 파일을 가져갈수있고(Copy), 반대로 컨테이너가 호스테 존재하는 파일을 가져갈수있습니다.(Copy)

docker cp <옵션> <컨테이너 명>:<컨테이너 내부 파일 경로> <호스트 디렉토리 경로>

컨테이너 내부에 존재 하는 파일을 호스트로 복사할 때.

docker cp <옵션> <호스트 내부 파일 경로> <컨테이너 명>:<컨테이너 디렉토리 경로>

호스트 내부에 존재 하는 파일을 컨테이너로 복사할 때.


아래 옵션을 통해 확인해보도록 하겠습니다.




dongdonge@dongdonge$ docker cp --help

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

Copy files/folders between a container and the local filesystem

Options:
  -a, --archive       Archive mode (copy all uid/gid information)
  -L, --follow-link   Always follow symbol link in SRC_PATH

옵션을 확인해보면, 별다른 옵션이 존재하지 않으므로 아래 예시를 통해 사용해보겠습니다.




컨테이너의 "/home/test.txt" 파일을 호스트의 "/root/" 경로에 파일을 복사해보도록 하겠습니다.

dongdonge@dongdonge$ docker cp ubuntu_New:/home/test.txt /root

dongdonge@dongdonge$ sudo ls /root
test.txt




반대로 호스트의 "/root/host.txt" 파일을 컨테이너의 "/home" 경로에 파일을 복사해보도록 하겠습니다.

dongdonge@dongdonge$ docker cp /root/host.txt ubuntu_New:/home

dongdonge@dongdonge$ docker exec ubuntu_New ls /home
host.txt