私は通常、ubuntu、arch linuxイメージを使用していますが、最近、ドッキング用のコンテナ用のcoreOSというOSがあることがわかりました。私がドッカーには慣れていないので、私はドッカーファイルを構築するための最良のベースイメージがどれであるかわかりません。それは愚かな質問のように思えますが、私はいくつかのコンテナで多くのマイクロサービスを実行する場合、コンテナはできるだけ軽くする必要があります。ドッカーファイルの作成に使用できる最も軽量なベースイメージは何ですか?
答えて
これは本当にあなたの要件に応じて異なります。
FROM scratch
:あなたが静的にアプリケーションをコンパイルすることができ、他のバイナリ(ライブラリ、シェル、または他のコマンド期間)を必要としない場合には、あなたは完全に空の "スクラッチ"を使用しています。これは、他のベースイメージの開始点として使用されています。また、あらかじめコンパイルされた多くのGoコマンドにも含まれています。Busybox:この基本イメージと便利なユーティリティコンテナのほうが少ないと考えています。あなたは非常に小さなサイズで多くの一般的なコマンドを取得します。しかし、あなたが得られないものは、一般的なパッケージマネージャーが他のコンポーネントを簡単にインストールすることです。現在のサイズは1Mです。
アルパイン:これは合理化されたイメージを取っています。それは良い仕事をしていて、小さくても、あなたにパッケージマネージャーを与えます。小さなサイズにはコストがかかりますが、glibcのようなものは含まれていません。公式画像の多くはアルパインに基づいていることがわかります。したがって、コンテナの生態系内では、これは非常に一般的な選択肢です。パッケージの追加を開始する前の現在のサイズは約2Mです。
Debian、Ubuntu、およびCentOS:これは軽量のベースイメージではなく、それぞれ約50Mで提供されます。しかし、彼らはあなたが引き出すことができるパッケージの大量のコレクションと、テストしている、バグを修正し、上流に物事に貢献している多くの人々と一緒に得られるサイズで失うもの。彼らはまた、いくつかのアプリケーションがプリインストールされることを期待するかもしれないライブラリのコレクションを持っています。
その最後のオプションは少し大きくなるが、基本イメージのみワイヤ上に押されると、一度ディスクに保存されている必要があることを心に留めておきます。その後、それらを変更しない限り、それらの上に構築されたイメージは、そのベースイメージ内のレイヤーを参照するマニフェストを送信するだけで済みます。ドッカーエンジンは、それらのレイヤーが既にダウンロードされていることを確認します。ユニオンfsでは、100個のコンテナをすべて実行してそのイメージを指していても、それらのレイヤーをコピーする必要はありません。ディスクのすべてのイメージレイヤーに対して同じ読み取り専用レイヤーを使用し、そのコンテナに変更を書き込みます特定のRWレイヤー。
試してみてください。alpine linux
ベースイメージは、実際には小さく(5M)、パッケージリポジトリにアクセスできます。本番環境でJDKベースイメージを構築するためにこれを使用していますが、これまでのところうまく動作しています。
- 1. 最もシンプルで軽量なWSGIフレームワークは何ですか?
- 2. 最も軽量なキャンバスやグリッドはどれですか?
- 3. 軽量CSSフレームワークとは何ですか?
- 4. マルチレベルメニューを作成するための最速かつ最も軽量なメニュー手法
- 5. libgit2で軽量タグを作成するには
- 6. jsで非同期サービスコールを行う最も軽量な方法は何ですか?
- 7. ドッカーファイルでローカルイメージをベースイメージとして使用するにはどうすればよいですか?
- 8. なぜJSONはXMLよりも軽量ですか?
- 9. Androidで消費されるWebサービスのデータの中で最も軽量なメソッド
- 10. セッションにデータを格納する最も軽量なコレクション/汎用オブジェクト/オブジェクト
- 11. Rubyとmongodbを使用した軽量分散システムを開発する最良の方法は何ですか?
- 12. webpackを使用しない.vueファイルのコンパイルを自動化する最も軽い方法は何ですか?
- 13. 特定の頂点を通る有向グラフの中で最も軽量な円
- 14. Rails 3で測量を作成する最も簡単な方法は何ですか?
- 15. Unity3Dで動作する軽量IoCコンテナ
- 16. django-sentryの軽量代替手段は何ですか?
- 17. Javascript MVC - 軽量ですか?
- 18. 何百ものチェックボックスにonclick()を追加する最も軽い方法は何ですか?
- 19. 移植可能で軽量な彗星サーバーの実装は何ですか?
- 20. fontforgeとfonttoolsを使って軽量フォールバックフォントを作成する
- 21. Apache Sparkの巨大/大規模RDDで実行するのに最適な、または最も軽量で効率的な/最も安価なRDDアクション
- 22. WPFを使用してスクロールエリアに何千ものコントロールを作成する最良の方法は何ですか?
- 23. ネイティブC/C++とC#(.NET)の間で最も軽いIPCソリューションは何ですか?
- 24. このフラッシュエフェクトは軽量のスクリプトで実現できますか?
- 25. DotNetBrowserは、SetChromiumSwitches()から軽量ブラウザを作成します。
- 26. データベースにデータをアップロードする軽量プログラムを作成する(C++)
- 27. アプリケーションを使用して構成できるユーティリティdllを作成する最適な方法は何ですか?
- 28. ドッカー:異なる容器で異なるベースイメージを使用できますか?
- 29. .NET(GDI +を使用)で現実的なハイライターを作成する最も良い方法は何ですか?
- 30. ドッキング画像を作成中にFROMを使用しているときのベースイメージに含まれるもの
多分、tianon/true/image(合計125バイト)について話し、データのみのコンテナはあなたの説明を改善するのに良いです。 –
私はデータ専用容器が好きではありません。それらはコンテナとデータの管理を混在させ、コンテナのクリーニング時にデータが失われる危険性があり、名前付きボリュームに置き換えられました。 – BMitch