2017-12-30 28 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

を(javaので実行されている他のドッキングウィンドウでアプリをインポートするために、正しい手順が何であるか)だけが正しいです。ベースイメージopenjdk:8はすでに737MBであるため、アプリケーションは25 MBのみです。ビルドされたイメージをドッカーハブにプッシュし、それぞれのユーザーにそこから引き出すように依頼することができます。画像を保存しようとすると、あなたのユーザーはドッカーハブからの引き出しにアクセスできない可能性があります。

ドッカー画像のサイズを最小限に抑えるには、代わりにjre画像を使用します(openjdk:8-jre-simのサイズは約205 MBのみです)。自分でビルドすることでjreイメージをさらに減らすことができます。チュートリアルの1つはhereです。しかし、あまり改善されていないので、公式のjreイメージを使用することをお勧めします。

+0

ありがとう、私は保存する必要がありますか、これらの2つの "tar"ファイル(イメージとコンテナ)のためにエクスポートするか、単にイメージに保存するだけで十分でしょうか?私が他の人(Docker)に提供する必要があるもの – VitalyT

+0

のみで十分です。ベース画像はすでに結果構築画像に埋め込まれています。 – Apolozeus

+0

ベースイメージは「ドッカーのドッキング・テストのドッキング - > docker_test_image.tar」ですか?または "docker export docker_container> docker_container.tar"? – VitalyT

関連する問題