Linux
 Computer >> コンピューター >  >> システム >> Linux

SlimToolkit で Docker イメージ サイズを削減し、パフォーマンスを向上 – 実証済みの最適化ツール

以前は、大規模な Docker イメージのトラブルシューティングに多くの時間を費やし、ビルドが完了するのを待ち、ストレージの無駄を心配していました。 Dockerfile をどれだけ慎重に構成しても、イメージは常に必要以上に重くなってしまうように感じました。 SlimToolkit (以前は DockerSlim として知られていました) を発見したとき、すべてが変わりました。

このツールは、Docker イメージを分析し、実行時に実際に必要なファイルと依存関係を特定し、その他すべてを削除します。このガイドに従って、SlimToolkit の仕組みと、何も壊さずに Docker イメージを縮小するために使用した手順を確認してください。

目次

SlimToolkit により Docker イメージの最適化が簡素化

スリムツールキット は、アプリケーション コードや Dockerfile を変更することなく、Docker イメージのサイズを削減するオープンソース ツールです。これにより、パッケージのクリーニングやビルド ステージの書き換えなど、手動による最適化手順が不要になります。代わりに、SlimToolkit は画像の最適化を自動的に処理し、プロセスをシンプルに保ちます。

Docker イメージ上で SlimToolkit を実行すると、コンテナーがどのように実行されるかを監視して動的分析を実行します。実行中にアプリケーションがどのファイル、ライブラリ、依存関係に触れるかを正確に追跡します。このデータに基づいて、必要なコンポーネントのみを含む新しい最適化されたイメージが作成されます。元のイメージは変更されないため、プロセスが安全かつ簡単に元に戻せます。

SlimToolkit は既存のイメージで動作し、Docker や Linux の高度な知識を必要とせずに、Node.js、Python、Java、Go をサポートします。ほとんどのワークフローにシームレスに統合され、攻撃者が悪用する可能性のある未使用のツールやシェルを削除することでコンテナのセキュリティを向上させます。イメージが小さいほど、ダウンロードが速くなり、起動が速くなり、消費するリソースが少なくなります。これは、CI/CD パイプラインにとって大きなメリットとなります。

Docker 経由で SlimToolkit を使用するのが、ローカルにインストールする必要がないため、最も簡単な方法です。 Docker がインストールされ実行されていれば、すぐに SlimToolkit の使用を開始できます。

まず、次の docker コマンドを使用して、公式の SlimToolkit イメージをダウンロードします。

docker pull dslim/slim
SlimToolkit で Docker イメージ サイズを削減し、パフォーマンスを向上 – 実証済みの最適化ツール

SlimToolkit を実行するには、Docker ソケット (/var/run/docker.sock) をマウントする必要があります。これにより、イメージを分析および最適化するためにローカル Docker エンジンと通信するためのアクセス許可がコンテナーに与えられます。信頼できる公式イメージのみを使用してください。

SlimToolkit を使用して Docker イメージのサイズを削減する

最適化プロセスを実証するために、標準の Nginx イメージをスリム化します。まず、公式の最新の Nginx イメージをプルします。

docker pull nginx:latest
SlimToolkit で Docker イメージ サイズを削減し、パフォーマンスを向上 – 実証済みの最適化ツール

Nginx などの標準アプリケーションの場合、ビルド コマンドを直接実行できます。 SlimToolkit は、コンテナが実際に使用しているファイルを確認し、不要なファイルを削除します。

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build --target nginx:latest --tag nginx-slim:latest
SlimToolkit で Docker イメージ サイズを削減し、パフォーマンスを向上 – 実証済みの最適化ツール

一部の言語 (Python や Ruby など) には、標準プローブ中にすぐにトリガーされない依存関係がある場合があります。そのような場合は、「ignore.txt」ファイルを作成して、どのフォルダーを保持するかを SlimToolkit に指示します (「/usr/local/lib/python3.11」など)。これにより、SlimToolkit が重要なランタイム依存関係を削除できなくなります。

ボリューム マウントを使用してコマンドを実行して、保存ルールを含めることができます。

-v "$(pwd)":/target --preserve-path-file /target/ignore.txt

サイズの違いを比較:オリジナルとサイズの違いスリム化された画像

プロセスが完了すると、SlimToolkit は最適化されたイメージをローカルに保存します。次のコマンドを使用して、元のバージョンとスリム化されたバージョンのサイズの違いを比較できます。

docker images

おそらく劇的な削減が見られるでしょう。

SlimToolkit で Docker イメージ サイズを削減し、パフォーマンスを向上 – 実証済みの最適化ツール

最後に、新しく最適化されたイメージをテストして、期待どおりに動作することを確認します。

docker run -it -p 8080:80 nginx-slim:latest
SlimToolkit で Docker イメージ サイズを削減し、パフォーマンスを向上 – 実証済みの最適化ツール

ブラウザを開いて http://localhost:8080 に移動します。デフォルトの Nginx ウェルカム ページが表示されますが、これは非常に小さいコンテナ フットプリントで実行されます。

SlimToolkit で Docker イメージ サイズを削減し、パフォーマンスを向上 – 実証済みの最適化ツール

SlimToolkit は、Docker イメージの分析と最適化に役立ついくつかの重要なコマンドを提供します。最も役立つもののリストは次のとおりです。

コマンド 説明 スリム ビルド必要なファイルと依存関係のみを保持し、イメージ サイズを削減することで Docker イメージを最適化します。slim xray Docker イメージを分析し、ファイル、レイヤー、依存関係などの内容を表示します。slim lint Dockerfile のエラーをチェックして、ビルドの問題を防ぎます。slim debugスリム化された Docker イメージから作成された実行中のコンテナーをデバッグできます。slim profileDocker イメージに関する情報を収集し、サイズに関する JSON レポートを出力しますおよびパフォーマンス分析。slim merge 2 つの Docker イメージを 1 つのイメージにマージします。

次のコマンドを使用して、利用可能なすべての SlimToolkit コマンドとその使用法を確認することもできます。

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim slim help
SlimToolkit で Docker イメージ サイズを削減し、パフォーマンスを向上 – 実証済みの最適化ツール

留意すべき制限事項

SlimToolkit は Docker イメージ サイズの削減に役立ちますが、いくつかの欠点を考慮する必要があります。

  • 大きな画像のスリム化には時間がかかる場合があるため、それに応じて計画を立ててください。
  • このツールは動的分析を使用するため、ビルド プロセス中に特定のコード パスが実行されない場合、SlimToolkit は依存関係が使用されていないと判断し、依存関係を削除する可能性があります。スリム化された画像は常に徹底的にテストしてください。
  • スペースを節約するために、bash やcurl などのツールが削除されることがよくあります。実稼働コンテナ内でのトラブルシューティングにこれらが必要な場合は、SlimToolkit にそれらを保持するように明示的に指示する必要があります。

まとめ

SlimToolkit をワークフローに追加すると、デプロイメントが加速され、一貫したパフォーマンスが保証され、コンテナーの肥大化が最小限に抑えられます。元のビルドを変更せずに、よりクリーンでよりプロフェッショナルな Docker イメージを構築するのに役立ちます。さらに、Docker の最適なクリーニング方法を採用すると、効率的でよく整理されたコンテナを長期間維持するのに役立ちます。


  1. Ubuntu で Auto-GPT をインストールおよび構成するためのステップバイステップ ガイド

    2023 年 5 月 19 日午後 2 時 45 分 EDT に公開 Jayric は法医学科学を卒業し、5 年以上の執筆経験があり、リバース エンジニアリングとハードウェアに情熱を持っています。 彼のテクノロジーの旅は幼少期に古いおさがりの Nokia N91 から始まり、ポケモン ブルーの Symbian ポートのように Java ゲームを再パッケージして TM やポケドルを微調整しました。高校生になるまでに、彼はカスタム Android ROM をフラッシュし、昼食代のために改造ゲームを取引していました。大学では、TI Tiva C LaunchPad で C/C++ とエレクトロ

  2. Linux でアプリのバックグラウンド起動を無効にすると 24 時間でシステムが軽くなる方法

    2026 年 4 月 4 日、午後 2 時 01 分 EDT に公開 Roine Bertelson は、ストックホルムを拠点とするテック ライター、翻訳者、デジタル ストラテジストであり、AI ツール、Linux、コンシューマー テクノロジー、サイバーセキュリティ、SEO 主導のコンテンツに関して 20 年以上の実践経験があります。彼は、複雑なトピックを、読者が実際の問題を解決するのに役立つ明確で実践的なガイダンスに変えることで知られています。人々が彼の作品を信頼しているのは、彼が記事にしているツールを実際に使用してテストし、意図的に物事を破壊し、現代テクノロジーの混乱を人間的で誠実で役