Dockerfile의 ADD와 COPY 명령어의 차이점은 무엇입니까

Dockerfile의 ADD와 COPY 명령어의 차이점은 무엇입니까

Dockerfile 참조에서 Docker 이미지에 파일을 복사하는 두 가지 지침을 설명하는 이유를 잘 모르겠습니다. 가지다다음에 추가그리고복사그들은 나와 매우 비슷해 보입니다. 그들 사이에 실질적인 차이가 있습니까? 그렇지 않은 경우 가장 일반적으로 사용되는 것은 무엇입니까?

답변1

ADD더 많은 "마법"을 수행합니다. URL을 얻고 아카이브의 압축을 풉니다. 이는 다소 예상치 못한 일일 수 있습니다(특히 아카이브 압축 해제의 경우). 귀하에게 권장되는 공식 모범 사례 가이드ADD의 추가 기능이 필요하지 않으면 COPY를 사용하세요..

답변2

~에 따르면Dockerfile 작성 모범 사례,

ADD기능 은 유사 하지만 COPY일반적으로 COPY가 선호됩니다. 에 비해 더 좋기 때문입니다 ADD.

ADDtar 파일을 추출하고 원격 URL 파일을 얻을 수 있습니다.공식 문서. 또한,

이미지 크기가 중요하므로 ADD원격 URL에서 패키지 가져오기를 사용하지 말고 대신 사용해야 curl합니다 wget.

COPY entrypoint.sh /srv/app/
ADD app.tar /srv/app/

따라서 일반적인 규칙은 @derobert가 언급한 것과 같습니다. 독점 기능이 COPY필요하지 않으면 .ADD

관련 정보