도커 이미지가 product-test:latest
있습니다. 어떤 장애물없이 모든 환경에서 실행되고 있지만 그것을 밀어 amazon-ecr
내 amazon ec2
인스턴스 로 가져 와서 컨테이너를 시작하려고하면 product-test
. 에 zip
제품 바이너리 파일이 없는 것처럼 오류가 발생 합니다 /tmp/product-*.zip
. docker history product-test:latest
이미지 수단 ec2
과 로컬 dev
서버 의 history ( ) 를 비교하려고 할 때 . layers
누락 된 부분 이 많다는 것을 알게 되었습니다.
다음은 Dockerfile
이 이미지를 만드는 스 니펫입니다 .
MAINTAINER chintanthakar510@gmail.com
ARG binaries
COPY $binaries/.m2 /root/
ADD $binaries/product-*.zip /tmp/
나는 또한 함께 시도 docker save -o product-test_latest.tar product-test:latest
와에 Amazon ec2
와 함께 그 이미지를로드 docker load --input /home/centos/product-test_latest.tar
하지만 여전히 같은 문제에 직면. 도커 이미지에는 아마존 인스턴스에 오지 않는 것이 거의 없습니다. 내가 직면하고있는 것은 정말 이상한 문제입니다.
아마존 EC2 : docker --version: 1.12.6, build ec8512b/1.12.6
OS :CentOS Linux release 7.4.1708 (Core)
내 로컬 개발자 서버 : docker --version: 1.13.1-cs2, build ad32da7
OS :Red Hat Enterprise Linux Server release 7.2 (Maipo)
확인해야 할 가능한 문제는 무엇입니까? 정말 감사하겠습니다. 감사
답변
Docker 이미지를 관리하기 위해 docker save
및 docker load
명령을 사용 하는 것은 권장되지 않습니다. 보안에 관심이 있고 이미지를 Docker Hub로 푸시하지 않으려면 개인 Docker 저장소를 만들거나 이미지를 ECR로 푸시하십시오. 작성된 TAR 파일이 평평 해지고 일부 메타 데이터가 누락되었습니다.
모범 사례는 다음과 같습니다.
-
Private Docker 레지스트리를 만들거나 ECR을 사용하십시오.
-
정적 파일 및 사용자 정의 바이너리로 Docker 이미지를 빌드하십시오.
-
Docker 이미지를 개인 레지스트리 또는 ECR로 푸시하십시오.
-
EC2의 경우 Private Docker 레지스트리 또는 ECR에서 이미지를 가져옵니다.
이러한 방법으로 docker save
및 docker load
명령을 사용할 때 발생하는 Docker 파일 시스템 계층 문제를 피할 수 있습니다 .