GlassFishを実行しているコンテナがあります。画像をコミットしてみると14GBになりました。その後、/tmp/
10GBのコンテナーで削除してイメージをコミットしようとしましたが、それでもイメージは14GBです。コンテナからファイルを削除しても画像サイズには反映されないようです。この問題を解決するにはどうすればよいですか?
GlassFishを実行しているコンテナがあります。画像をコミットしてみると14GBになりました。その後、/tmp/
10GBのコンテナーで削除してイメージをコミットしようとしましたが、それでもイメージは14GBです。コンテナからファイルを削除しても画像サイズには反映されないようです。この問題を解決するにはどうすればよいですか?
回答:
直面している可能性がある問題は、コミットでファイルを削除しても、ファイルが以前のイメージに存在していたという事実が変更されないため、以前のイメージが14Gのままであることです。
この記事の「レイヤー」の部分をご覧ください:http : //woudenberg.io/reducing-docker-image-size/
この問題を解決するには、それらを生成した元のコミット内の/ tmp /の下にあるものを削除する必要があります。これにより、そのコミットの結果として作成されたイメージにそれらが含まれなくなります。dockerfilesを使用する場合は簡単ですが、コミットでイメージを作成する場合は可能かどうかはわかりません。
あなたができるかもしれないもう一つのことは、画像をエクスポート/インポートすることによってレイヤーをスカッシュすることです。
@Juan Antonioの答えを拡張しDockerfile
て、これを実行してもスペースを節約できません。
RUN apt-get install -y foo bar
...
RUN apt-get purge --auto-remove -y foo bar
代わりにあなたがする必要があるのは:
RUN apt-get install -y foo bar && \
&& ... \
&& apt-get purge --auto-remove -y foo bar
マイナス面としては、大きなコマンドラインで何か変更があった場合、Dockerはコマンドセット全体を再実行する必要があるため、キャッシュが少なくなるということです。
glassfish
Dockerイメージは約1 GBです。Dockerイメージにはかなり大きなものですが、構築しているように見えるものよりもはるかに小さいです。