본문 바로가기
프로그래밍/도커(Docker)

도커(Docker) 컨테이너 내부로 파일 복사를 해보자

by bantomak 2025. 4. 26.
반응형

docker cp 명령어로 파일 복사

docker로 컨테이너를 만들고 빌드를 하거나 특정한 함수를 실행하고 나온 결과를 내 로컬로 가져오고 싶은 경우들이 자주 발생한다.

이때 사용하면 편한 명령어가 docker cp 명령어다. 사용법에 대해서 알아보자.

기본 문법

docker cp [호스트 경로] [컨테이너 이름 또는 ID]:[컨테이너 경로]

로컬 -> 컨테이너로 복사

docker cp [컨테이너 이름 또는 ID]:[컨테이너 경로] [호스트 경로]

컨테이너 -> 로컬로 복사

 

위에 예시처럼 내 로컬과 컨테이너 내부 경로를 입력하면 파일을 복사하는 게 가능하다. 단일 파일을 복사할 수도 있고 폴더 경로를 입력해서 폴더 내부의 모든 파일을 복사할 수도 있다.

단일 파일 복사 예제

docker cp ./myfile.txt mycontainer:/app/myfile.txt

로컬의 myfile.txt 파일을 mycontainer 컨테이너 안 /app/myfile.txt 위치로 복사

docker cp mycontainer:/app/output.txt ./output.txt

mycontainer 컨테이너 안 /app/output.txt 파일을 로컬의 현재 디렉터리 ./output.txt 위치로 복사

폴더 복사 예제

docker cp ./my-folder mycontainer:/app/my-folder

로컬 -> 컨테이너 내부로 복사

docker cp mycontainer:/app/my-folder ./my-folder

컨테이너 내부 -> 로컬로 복사

로컬 현재 디렉터리에서 first-ubuntu 컨테이너의 /my-source로 폴더 내용을 복사한다.

주의해야 할 부분

  • 컨테이너 이름을 정확하게 입력 : docker ps로 컨테이너 이름을 확인하고 정확하게 입력하자.
  • 컨테이너 안 경로는 항상 /로 시작하는 절대경로를 사용하는 것이 안전하다. (/은 루트 디렉터리를 의미한다.)
  • 존재하지 않는 디렉터리에 접근하면 자동으로 만들어주지 않고 에러가 난다.
  • 컨테이너 안에 쓰기 권한이 있어야지 정상적으로 복사가 이뤄진다.
  • 꺼진 컨테이너를 대상으로 해도 docker cp는 작동한다.

정리하자면

  • docker cp는 파일 복사 명령
  • 파일 하나만 수정하고 싶을 때, 또는 결과물만 뽑고 싶을 때 편리하다.
  • 경로만 지정하면 한 번에 복사가 이뤄지므로 자동화하기 좋고 실수가 적어진다.

함께 읽으면 좋은 글

 

[Linux/Unix] 절대경로와 상대경로

절대 경로(Absolute Path) 표시법절대 경로는 파일의 root로부터 해당 파일에 이르기까지의 전체 경로(URL)를 의미한다. 절대 경로는 보통 다른 사람의 문서나 파일을 이용할 때 사용한다. 절대 경로는

jettstream.tistory.com

댓글