2017-12-30 7 views
-1

내 작업은 Spring Boot + mongo 포함 모드로 간단한 Java 응용 프로그램을 만든 다음 Docker에 저장하고 배포하는 것입니다. 따라서 다른 사람이이 스냅 샷을 찍은 다음 해당 지역 환경에서 실행합니다. 하지만 ... 등 용기 또는 이미지 중 하나를 내보낼 정확히축소 된 크기로 Docker 이미지를 내보내는 가장 좋은 방법은 무엇입니까?

내 단계를 약간의 혼동을 해요 : 1. Dockerfile

FROM openjdk:8 
ADD target/docker-spring-boot-0.0.1-SNAPSHOT.jar docker-spring-boot-0.0.1-SNAPSHOT.jar 
EXPOSE 8080 
ENTRYPOINT ["java","-jar","docker-spring-boot-0.0.1-SNAPSHOT.jar"] 

2.

Create image 

    docker build -f Dockerfile -t docker-test . 

3 만들기 .

vitalys-MBP:docker-spring-boot$ docker images 
    REPOSITORY   TAG     IMAGE ID   CREATED    SIZE 
    docker-test   latest    644e2f818027  15 minutes ago  762MB 
    openjdk    8     7c57090325cc  2 weeks ago   737MB 


//save on the image 
docker save docker-test > docker_test_image.tar 

//export on the container 
docker export docker_container > docker_container.tar 

내 질문은 :

각 .tar 파일을 볼 수 있습니다. 거의 760MB입니다. 1.5GB를 보낼 수 없으며, 컨테이너를 내보낼 필요가 없거나 여기에없는 파일이 있습니까? 당신이 무슨 짓을

덕분에 많은

답변

1

을 (자바 실행 다른 고정 표시기에 응용 프로그램을 가져 오려면 정확한 단계가 무엇인지)에만 맞습니다. 기본 이미지 openjdk:8은 이미 737MB이므로 응용 프로그램은 25MB입니다. 빌드 된 이미지를 docker-hub에 푸시하고 각 사용자에게 거기에서 당겨달라고 요청할 수 있습니다. 이미지 저장을 시도 할 때 사용자가 docker-hub에서 데이터를 가져올 수있는 권한이 없다고 가정합니다.

도커 이미지의 크기를 최소화하려면 대신 jre 이미지를 사용하십시오 (예 : openjdk:8-jre-sim의 크기는 약 205MB). 당신은 자습서 중 하나가 자신의 건물에 의해 jre 이미지를 추가 줄일 수 있습니다 here 찾을 수 있습니다. 그러나별로 개선되지 않았으므로 공식 jre 이미지를 사용하는 것이 좋습니다.

+0

감사합니다. 저장하고 이미지 및 컨테이너 용으로 2 개의 "타르"파일로 내보내거나 이미지를 저장하면됩니다. 내 앱이 거기서 달릴 다른 사람 (Docker)에게 내가 필요한 것 ...? – VitalyT

+0

하나만 있으면 충분합니다. 기본 이미지는 이미 결과 내장 이미지에 이미 포함되어 있습니다. – Apolozeus

+0

기본 이미지는 "docker save docker-test> docker_test_image.tar"입니까? 또는 "docker export docker_container> docker_container.tar"? – VitalyT

관련 문제