Engineering/Docker

로컬 PC 에서 쿠버네티스 Pod 로 파일 복사

부스 boos 2025. 10. 2. 09:42
728x90

 컨테이너 환경에서 운영을 하다보면 필요에 따라 로그 파일을 다운로드 해서 로컬에서 본다거나 로컬의 테스트 데이터를 컨테이너에 넣어서 확인해봐야할 경우가 있다.
 그럴때 사용할 수 있는 파일 복사 방법에 대한 내용을 정리해본다.

 

- 먼저 파일 복사 대상파드 이름을 확인한다.

> kubectl get pods


 - 로컬 PC → 쿠버네티스 파드(Pod)

 kubectl cp <복사할 대상> <pod 이름:복사할 위치></pod이름:복사할 위치> -n<네임스페이스 이름>
 ex) kubectl cp ABC.txt test-web-6db6f4f768-gs9j2:/tmp

 

 주의할 점은 로컬 PC 가 윈도우즈 일 경우, 파일의 경로 구분을 역슬래시(\)가 아니고 슬래시(/)로 해야한다.

(X) kubectl cp .\target\test.jar test-web-6db6f4f768-gs9j2:/tmp

(O) kubectl cp ./target/test.jar test-web-6db6f4f768-gs9j2:/tmp

 

- 쿠버네티스 Pod → 로컬 PC

 kubectl <pod 이름:복사할 위치> <로컬 경로>
 ex) kubectl cp webapp-6974bdcb77-wn85n:/tmp/send-test.jar ./rename.jar

 

 복사 대상의 경로가 '/' 로 시작하면 "tar: removing leading ~~~" 가 오류가 날 수 있다. 그럼 다음과 같이 경로 맨앞의 '/' 를 제거하자. 그리고, 특정 경로의 위치는 권한 문제로 접근이 안될 수 있으니 /tmp 로 복사 대상 파일을 복사해서 로컬로 가져올 수 있다.

D:\download>kubectl cp webapp-667767fbff-62fnf:/tmp/classes.jar .\\a.jar
tar: removing leading '/' from member names

D:\download>kubectl cp webapp-667767fbff-62fnf:tmp/classes.jar .