Docker 이미지를 구축할 때 Dockerfile의 COPY
와 ADD
명령어는 파일과 디렉토리를 이미지로 복사하는 데 사용됩니다. 이 글에서는 이 두 명령어의 차이점과 각각의 사용 사례를 살펴보겠습니다.
COPY 명령어
COPY
명령어는 Docker 호스트의 파일이나 디렉토리를 Docker 이미지로 복사하는 데 사용됩니다. 이 명령어는 로컬 파일 시스템에서만 작동하며, URL이나 다른 원격 소스에서 직접 파일을 복사할 수는 없습니다.
COPY 사용 예시
# Dockerfile
COPY ./local_directory /container_directory
이 예시에서 local_directory
는 호스트 시스템의 디렉토리이며, /container_directory
는 대상 이미지 내의 디렉토리입니다.
ADD 명령어
ADD
명령어는 COPY
와 유사하게 작동하지만 몇 가지 추가 기능을 제공합니다. 이 명령어는 URL을 통해 파일을 다운로드할 수 있으며, 압축된 파일을 자동으로 추출할 수 있는 기능을 갖고 있습니다.
ADD 사용 예시
# Dockerfile
ADD http://example.com/big.tar.xz /container_directory
이 예시에서는 big.tar.xz
파일을 http://example.com
에서 다운로드하고, /container_directory
에 압축 해제하여 추가합니다.
차이점
- 단순성 vs. 다기능성:
COPY
는 단순하고 명확한 기능을 가진 반면,ADD
는 더 다양한 기능을 제공합니다. - 원격 소스 처리:
COPY
는 로컬 파일에만 사용할 수 있지만,ADD
는 원격 URL에서 파일을 다운로드할 수 있습니다. - 자동 압축 해제:
ADD
는 압축된 파일을 이미지 내부에서 자동으로 압축 해제할 수 있지만,COPY
는 그렇지 않습니다.
언제 어떤 명령어를 사용해야 할까요?
일반적으로 Dockerfile을 작성할 때 명료성과 예측 가능성을 위해 COPY
를 사용하는 것이 권장됩니다. ADD
는 특정 상황에서 유용할 수 있지만, 그 추가 기능들이 필요하지 않다면 COPY
를 사용하는 것이 더 간결하고 이해하기 쉽습니다.
이해를 돕기 위해 Docker 공식 문서나 관련 기술 블로그에서 더 자세한 예시와 설명을 찾아볼 수 있습니다. Dockerfile을 작성하고 관리하는 과정에서 이러한 명령어들의 올바른 사용법을 익히는 것은 효율적인 이미지 구축에 매우 중요합니다.
이 글이 Docker 이미지 구축 과정에서 COPY
와 ADD
명령어의 차이점을 이해하는 데 도움이 되었기를 바랍니다.
'About > Docker' 카테고리의 다른 글
[Docker] 볼륨 추가 시 필요 없는 특정 폴더 쉽게 제외하기 (.dockerignore) (0) | 2023.11.19 |
---|---|
[Docker] Dockerfile에서 RUN과 CMD의 차이점 (0) | 2023.11.18 |
[Docker] Docker 컨테이너에서 호스트 머신의 로컬호스트에 접속하는 방법 (host.docker.internal) (0) | 2023.11.18 |
[Docker] Docker 호스트에서 컨테이너 IP 주소 찾는 쉬운 방법 (1) | 2023.11.15 |
[Docker] Docker 사용 중 "권한 거부" 문제 해결하기: 단계별 가이드(Got permission denied 에러 해결) (0) | 2023.11.10 |