2017-12-30 42 views
-1

Meine Aufgabe ist es, einfache Java-Anwendung mit Spring Boot + Mongo Embedded-Modus zu erstellen, dann speichern und auf Docker bereitstellen. Also wird jemand anderes diesen Schnappschuss machen und in seiner lokalen Umgebung laufen. Aber ich bin ein wenig verwirren, was genau entweder den Behälter oder ein Bild zu exportieren, etc ...Was ist der beste/richtige Weg, um Docker Bild mit reduzierter Größe zu exportieren

Meine Schritte: 1. Erstellen 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 

Meine Frage ist:

Ich sehe jede der TAR-Dateien sie fast 760MB Ich kann nicht wirklich in der Lage, 1,5 GB zu senden, Vielleicht muss ich nicht den Container exportieren oder ich hier etwas fehlt ?? (Was die richtigen Schritte sind, um die Anwendung auf andere Docker mit Java laufen zu importieren)

Vielen Dank

Antwort

1

Was Sie haben, ist nur richtig gemacht. Da das Basis-Image openjdk:8 bereits 737 MB groß ist, ist Ihre Anwendung nur 25 MB groß. Sie können Ihr erstelltes Bild an den Docker-Hub senden und die entsprechenden Benutzer bitten, von dort zu ziehen. Wenn Sie versuchen, Bilder zu speichern, gehe ich davon aus, dass Ihr Benutzer möglicherweise keinen Zugriff auf den Docker-Hub hat.

Um die Größe des Docker-Images zu minimieren, können Sie stattdessen jre image verwenden (z. B. openjdk:8-jre-sim hat nur eine Größe von ca. 205 MB). Sie können jre Bild weiter reduzieren, indem Sie Ihr eigenes bauen, eins des Tutoriums kann here gefunden werden. Es wird jedoch keine große Verbesserung erzielt, daher würde ich Ihnen empfehlen, das offizielle jre-Bild zu verwenden.

+0

Danke, muss ich speichern, und exportieren Sie auf diese 2 "tar" -Dateien (für Bild und Container), oder nur speichern Bilder genug? was muss ich an andere Person (Docker) liefern, dass meine App dort läuft ...? – VitalyT

+0

nur einer ist genug. Das Basisbild ist bereits in das Ergebnisbild eingebettet. – Apolozeus

+0

Basisbild ist der "docker save docker-test> docker_test_image.tar"? oder "docker exportieren docker_container> docker_container.tar"? – VitalyT

Verwandte Themen