[Docker] 파일 복사

Bam·2025년 6월 18일

Docker

목록 보기
5/7
post-thumbnail

도커에서 파일 복사하기

호스트(로컬)과 서버 간의 파일을 직접 주고 받아야하는 경우가 있기도 합니다. 그래서 이번에는 도커에서 어떻게 파일 복사를 수행하는지 알아보도록 하겠습니다.

C:\Users\사용자\cp_test.txt 경로에 텍스트 파일을 하나 준비했습니다.
그리고 파일 확인을 위해 docker 측에는 alpine이라는 경량 리눅스 운영체제 컨테이너를 하나 설치해줍니다.

docker run -it --name -alpine-test -d alpine sleep infinity

호스트 -> 컨테이너

먼저 로컬에서 컨테이너로 파일 복사를 해보겠습니다. 파일 복사는 docker cp 명령을 사용합니다.

docker cp 원본_경로 복사대상_컨테이너명:컨테이너_경로
docker cp cp_test.txt alpine-test:/tmp/cp_test_from_host.txt

복사가 완료되었다면 다음 두 명령어를 입력하여 복사된 파일의 내용을 확인합니다.

docker exec -it alpine-test /bin/sh		#컨테이너 내부로 진입하는 명령어 docker exec
cat /tmp/cp_test_from_host.txt		#파일 내용을 확인하는 명령어 cat

cmd 설정 떄문에 개행이 제대로 안됐긴 했지만 cat으로 txt 내용을 확인해 본 결과 제대로 복사되었음을 확인할 수 있죠?

컨테이너 -> 호스트

이번엔 반대로 수행해보겠습니다. 위 문단에서 쉘에 접속한 상태에서 그대로 이어서 하겠습니다. echo 명령을 통해 txt 파일 생성을 합니다.

echo "파일 내용" > /tmp/파일명.txt

echo "문자열" > 파일명 명령은 지정한 파일에 문자열을 추가하는 명령입니다. 만약 파일명 경로에 파일이 없으면 생성합니다.

ls로 확인했을 때 위에서 복사한 파일 그리고 지금 생성한 파일 모두 있음을 확인할 수 있습니다. 이렇게 생성한 from_container.txt 파일을 호스트 위치로 복사해보겠습니다.

아까는 호스트 파일 경로부터 작성하고 컨테이너:컨테이너 경로를 작성했었는데요. 이번엔 그 반대 순서로 적습니다.

exit	#먼저 컨테이너에서 나간다 (반드시!!!)
docker cp alpine-test:/tmp/from_container.txt ./from_container.txt

작업 위치로 와보면 컨테이너로부터 복사한 파일이 있음을 확인할 수 있습니다.


이렇게 호스트에서 컨테이너 또는 그 반대로 파일을 복사하는 방법을 알아보았습니다.

필요하다면 다음 절차를 추가로 수행하여 실습에 사용한 컨테이너 및 이미지를 삭제해주세요.

docker stop alpine-test
docker rm alpine-test
docker rmi alpine

#또는 한 줄로
docker rm -f alpine-test && docker rmi alpine

0개의 댓글