>운영 및 유지보수 >Docker >Docker에서 복사 명령과 추가 명령의 차이점은 무엇입니까

Docker에서 복사 명령과 추가 명령의 차이점은 무엇입니까

青灯夜游
青灯夜游원래의
2021-11-29 16:57:0723844검색

차이점: COPY 명령어는 원격 URL에서 리소스를 얻는 것을 지원하지 않습니다. docker build가 실행되는 호스트에서만 리소스를 읽고 이미지에 복사할 수 있지만 ADD 명령어는 원격 URL에서 리소스를 얻는 것을 지원하고 다음에서 읽을 수 있습니다. URL을 통해 원격 서버에서 리소스를 가져와 이미지에 복사합니다.

Docker에서 복사 명령과 추가 명령의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: linux5.9.8 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.

Dockerfile의 COPY 명령과 ADD 명령 모두 호스트의 리소스를 컨테이너 이미지에 복사하거나 추가할 수 있으며, 모두 이미지 빌드 과정에서 완료됩니다.

DockerFile의 ADD와 COPY의 차이점

COPY 명령과 ADD 명령의 유일한 차이점은 원격 URL에서 리소스 가져오기를 지원하는지 여부입니다.

COPY 명령은 docker build가 실행되는 호스트에서만 리소스를 읽고 이미지에 복사할 수 있습니다. ADD 명령어는 URL을 통해 원격 서버에서 리소스를 읽고 이미지에 복사하는 것도 지원합니다.

동일한 요구 사항에 대해서는 COPY 명령을 사용하는 것이 좋습니다. ADD 명령은 로컬 tar 파일을 읽고 압축을 푸는 데 더 좋습니다.

ADD 및 COPY 지침

COPY에는 파일을 복사하는 ADD와 동일한 구문이 있습니다.

ADD

새 파일, 디렉터리 또는 원격 파일 URL cbce1a3cf2f839037583dce8e845670b을 복사하여 6be58d1426a577c69ada50a4bc87dd69에 추가하세요.

cbce1a3cf2f839037583dce8e845670b 여러 리소스를 지정할 수 있지만 파일이나 디렉터리인 경우 해당 경로는 빌드 컨텍스트의 소스인 _WORKDIR_을 기준으로 해석됩니다.

각 cbce1a3cf2f839037583dce8e845670b에는 와일드카드가 포함될 수 있으며 일치 시 Go의 filepath.Match 규칙이 ​​사용됩니다. 예:

"hom"으로 시작하는 모든 파일 추가:

ADD hom* /mydir/

아래 예에서 ?는 "home.txt"와 같은 단일 문자로 대체됩니다.

ADD hom?.txt /mydir/

6be58d1426a577c69ada50a4bc87dd69는 절대 경로 또는 WORKDIR에 대한 상대 경로입니다.

ADD 명령에는 다음과 같은 장점이 있습니다.

  • 1. 소스 경로가 파일이고 대상 경로가 /로 끝나면 docker는 대상 경로를 디렉터리로 처리하고 소스 파일을 해당 디렉터리에 복사합니다.
    대상 경로가 존재하지 않으면 대상 경로가 자동으로 생성됩니다.

  • 2. 소스 경로가 파일이고 대상 경로가 /로 끝나지 않으면 docker는 대상 경로를 파일로 처리합니다.
    대상 경로가 존재하지 않으면 대상 경로 이름으로 파일이 생성되고 콘텐츠는 파일과 동일한 소스에서 제공됩니다.
    대상 파일이 기존 파일인 경우 다음으로 덮어쓰여집니다. 물론, 내용만 덮어쓰게 되며 파일 이름은 여전히 ​​대상 파일 이름이 됩니다.
    대상 파일이 실제로 기존 디렉터리에 존재하는 경우 소스 파일이 해당 디렉터리에 복사됩니다. 이 경우 혼동을 피하기 위해 /로 표시를 끝내는 것이 가장 좋습니다.

  • 3. 소스 경로가 디렉터리이고 대상 경로가 존재하지 않는 경우 docker는 자동으로 대상 경로로 디렉터리를 생성하고 소스 경로 디렉터리에 파일을 복사합니다.
    대상 경로가 기존 디렉터리인 경우 docker는 소스 경로 디렉터리의 파일을 해당 디렉터리로 복사합니다.

  • 4. 소스 파일이 아카이브 파일(압축 파일)인 경우 docker가 자동으로 압축을 풉니다.

위의 장점은 ADD의 단점이기도 합니다

추천 학습: "docker video tutorial"

위 내용은 Docker에서 복사 명령과 추가 명령의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.