[解決済み] Dockerイメージ - タイプ。スリム vs スリム-ストレッチ vs ストレッチ vs アルパイン
質問
私は、Javaアプリを構築するためにDockerイメージをピックアップし、利用可能なOpenJDKイメージのバリエーションを見ています。 私はここで探しています https://github.com/docker-library/openjdk/tree/master/8/jdk で、alpine、slim、windowsとあります。 これらの違いは何ですか?また、それぞれのバリエーションは何をもたらすのでしょうか?
解決方法は?
docker library docs(以下、引用・リンク)あたりで、まとめておきます。
-
openjdk:<version>
デファクトの画像です。よくわからない場合は使ってください。
-
openjdk:<version>-buster
,openjdk:<version>-stretch
とopenjdk:<version>-jessie
buster
,
jessie
または
stretch
のリリースのスイートコード名です。
Debian
を示し、どの
リリース
を使用しています。
-
openjdk:<version>-alpine
同様に、この画像は アルパイン リナックス そのため、非常に小さなベース画像となっています。できるだけ小さなサイズのイメージが必要な場合にお勧めします。注意点としては、ちょっと変わったライブラリを使用していることですが、ほとんどのソフトウェアで問題ないはずです。疑問がある場合は、以下の公式ドキュメントを参照してください。
-
openjdk:<version>
(12以降)です。openjdk:<version>-oracle
とopenjdk:<version>-oraclelinux7
で始まる
openjdk:12
と同様、デフォルトの画像と
-oracle
と
-oraclelinux7
バリアントは、公式の
Oracle Linux 7 イメージ
.
デフォルトのイメージに含まれるOpenJDKバイナリおよび
-oracle
と
-oraclelinux7
バリアントは Oracle によってビルドされ、そのソースは
OpenJDKコミュニティ
.
-
openjdk:<version>-slim
この画像には、Javaを実行するために必要な最小限のパッケージしか含まれていません(例えば、UI関連のJavaライブラリの多くが欠けています)。という環境で作業しているのでなければ
のみです。
は
openjdk
がデプロイされ、スペースに制約がある場合は、この画像よりもデフォルトの画像を推奨します。
-
openjdk:<version>-windowsservercore
この画像は
Windows Server Core (
microsoft/windowsservercore
)
.
フルドキュメント ( この下に表示されているバージョン , 最新版はこちら ):
画像バリエーション
は
openjdk
画像には様々な種類があり、それぞれ用途に合わせて設計されています。 特定のユースケース
openjdk:<version>
これがデファクトの画像です。必要なものがわからない場合は は、おそらくこれを使いたいのでしょう。これは、以下の両方の用途で使用できるように設計されています。 捨てコンテナとして(ソースコードをマウントして コンテナでアプリを起動する) だけでなく、他の をイメージしています。
これらのタグの中には、jessieやstretchといった名前が含まれているものがあります。 これらは、以下のリリースのスイートコード名です。 Debian であり、どの のリリースをベースにしています。
openjdk:<version>-alpine
この画像は、人気のある アルパインリナックス プロジェクト で利用可能です。 は
alpine
オフィシャル イメージ . アルパインリナックスは、はるかに小さい ほとんどのディストリビューションの基本イメージ(~5MB)より、はるかに 一般に、よりスリムなイメージになります。このバリエーションは、最終的な画像サイズをできるだけ小さくする場合に強く推奨されます。 をできるだけ小さくすることが望まれます。注意点としては 使用 musl libc の代わりに glibcと フレンズ そのため、特定の の深さによっては、問題が発生する可能性があります。 が必要です。しかし、ほとんどのソフトウェアでは問題はありません。 で、この変種は通常とても安全な選択です。参照 このハッカーニュース コメントスレッド は 発生しうる問題や、いくつかの賛成・反対意見について、もっと議論してください。 アルパイン・ベースの画像を使用した場合の比較。
画像サイズを最小にするために、関連ツールを追加することは珍しいことではありません。 (など)。
git
またはbash
)をアルパイン画像に含めることができます。を使用します。 このイメージをベースに、必要なものを自分のDockerfileに追加します。 (を参照)。alpine
画像 説明 の例をご覧ください。 をインストールする必要があります。)
openjdk:<version>-windowsservercore
この画像は Windowsサーバーコア (
microsoft/windowsservercore
) . そのため、その画像がある場所、例えば以下のような場所でしか動作しません。 Windows 10 Professional/Enterprise (Anniversary Edition)またはWindows Server 2016を使用します。Windows上でDockerを動作させる方法については、以下を参照してください。 マイクロソフトが提供するクイックスタートガイドを参照してください。
openjdk:<version>-slim
この画像は
-headless
パッケージのため UI関連のJavaライブラリの多くと、一般的なパッケージのいくつかが欠落しています。 デフォルトタグに含まれています。このタグには を実行するために必要です。が動作する環境でない限り のみです。 はopenjdk
イメージをデプロイする場合、スペースに制約がある場合は、本製品のデフォルトイメージを使用することを強くお勧めします。 リポジトリに保存されます。
関連
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み] JVM、JDK、JRE、OpenJDKの違いは何ですか?
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み] Java 11のベースDockerイメージはなぜこんなに大きいのですか?(openjdk:11-jre-slim)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
jd-gui Java Exceptionが発生しました。
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
サーブレットクラスのインスタンス化エラーの解決法
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
Exception: java.util.NoSuchElementException: 行が見つかりません