차이점: COPY 명령어는 원격 URL에서 리소스를 얻는 것을 지원하지 않습니다. docker build가 실행되는 호스트에서만 리소스를 읽고 이미지에 복사할 수 있지만 ADD 명령어는 원격 URL에서 리소스를 얻는 것을 지원하고 다음에서 읽을 수 있습니다. URL을 통해 원격 서버에서 리소스를 가져와 이미지에 복사합니다.
이 튜토리얼의 운영 환경: 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
각
"hom"으로 시작하는 모든 파일 추가:
ADD hom* /mydir/
아래 예에서 ?는 "home.txt"와 같은 단일 문자로 대체됩니다.
ADD hom?.txt /mydir/
ADD 명령에는 다음과 같은 장점이 있습니다.
1. 소스 경로가 파일이고 대상 경로가 /로 끝나면 docker는 대상 경로를 디렉터리로 처리하고 소스 파일을 해당 디렉터리에 복사합니다.
대상 경로가 존재하지 않으면 대상 경로가 자동으로 생성됩니다.
2. 소스 경로가 파일이고 대상 경로가 /로 끝나지 않으면 docker는 대상 경로를 파일로 처리합니다.
대상 경로가 존재하지 않으면 대상 경로 이름으로 파일이 생성되고 콘텐츠는 파일과 동일한 소스에서 제공됩니다.
대상 파일이 기존 파일인 경우 다음으로 덮어쓰여집니다. 물론, 내용만 덮어쓰게 되며 파일 이름은 여전히 대상 파일 이름이 됩니다.
대상 파일이 실제로 기존 디렉터리에 존재하는 경우 소스 파일이 해당 디렉터리에 복사됩니다. 이 경우 혼동을 피하기 위해 /로 표시를 끝내는 것이 가장 좋습니다.
3. 소스 경로가 디렉터리이고 대상 경로가 존재하지 않는 경우 docker는 자동으로 대상 경로로 디렉터리를 생성하고 소스 경로 디렉터리에 파일을 복사합니다.
대상 경로가 기존 디렉터리인 경우 docker는 소스 경로 디렉터리의 파일을 해당 디렉터리로 복사합니다.
4. 소스 파일이 아카이브 파일(압축 파일)인 경우 docker가 자동으로 압축을 풉니다.
위의 장점은 ADD의 단점이기도 합니다
추천 학습: "docker video tutorial"
위 내용은 Docker에서 복사 명령과 추가 명령의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!