도커 컨테이너는 격리된 환경에서 작동하기 때문에, 실행 중인 컨테이너 내부의 파일에 접근하거나 파일을 추가하는 것이 쉽지 않습니다. 하지만 docker cp 명령어를 사용하면 실행 중인 컨테이너와 로컬 환경 간에 파일을 쉽게 복사할 수 있습니다. cp는 'copy'의 약자로, 파일이나 폴더를 컨테이너 안팎으로 복사할 때 사용됩니다.
docker cp 명령어 사용 방법
docker cp는 두 가지 방식으로 사용됩니다.
- 로컬 → 컨테이너: 로컬의 파일/폴더를 실행 중인 컨테이너로 복사합니다.
- 컨테이너 → 로컬: 컨테이너의 파일/폴더를 로컬 환경으로 복사합니다.
1. 로컬에서 컨테이너로 복사
docker cp [로컬_경로] [컨테이너_이름]:[컨테이너_경로]
예시: 로컬의 dummy 폴더의 test.txt 파일을 my-container 컨테이너의 /test 경로로 복사합니다. /test 경로가 존재하지 않으면 자동으로 생성됩니다.
docker cp /dummy/test.txt my-container:/test
dummy 폴더의 모든 내용을 복사하려면 경로 끝에 .을 추가합니다.
docker cp /dummy/. my-container:/test

2. 컨테이너에서 로컬로 복사
docker cp [컨테이너_이름]:[컨테이너_경로] [로컬_경로]
예시: my-container 컨테이너의 /test 폴더를 로컬의 ./dummy 경로로 복사합니다.
docker cp my-container:/test dummy

docker cp의 유용한 활용 사례
- 설정 파일 업데이트: 컨테이너를 재시작하지 않고 웹 서버의 설정 파일 등을 변경할 때 유용합니다.
- 로그 파일 추출: 실행 중인 컨테이너가 생성하는 로그 파일을 로컬로 복사하여 분석할 수 있습니다. 컨테이너는 일시적인 환경이기 때문에 중요한 로그는 복사하여 보관하는 것이 좋습니다.
- 컨테이너 내부 데이터 백업: 컨테이너 내부에서 생성된 중요한 데이터나 파일을 로컬로 안전하게 백업할 수 있습니다.
⚠️ 주의사항: 소스 코드가 변경될 때 docker cp로 파일을 복사하는 것은 권장되지 않습니다. 파일 누락이나 실행 중인 파일 대체 문제로 인해 애플리케이션에 오류가 발생할 가능성이 높기 때문입니다. 소스 코드가 변경되면 이미지를 다시 빌드하고 컨테이너를 재시작하는 것이 일반적인 워크플로우입니다. docker cp는 주로 로그나 특정 설정 파일을 다룰 때 사용하면 좋습니다.
'DevOps' 카테고리의 다른 글
| [Docker 9] 도커 이미지와 컨테이너에 이름(태그) 지정하기 (0) | 2025.08.25 |
|---|---|
| [Docker 7] docker image inspect로 이미지 심층 분석하기 (0) | 2025.08.24 |
| [Docker 6편] 컨테이너의 다양한 모드와 상호작용하기 🐳 (1) | 2025.08.19 |
| [Docker 5편] 컨테이너와 이미지 관리 명령어 모음 🐳 (2) | 2025.08.18 |
| [Docker 4편] 🐳 도커, 넌 대체 어떻게 빌드되는 거야? 이미지 레이어! (2) | 2025.08.18 |