ホームページ > 運用・保守 > Docker > Docker イメージをスリム化するいくつかの方法をまとめます

Docker イメージをスリム化するいくつかの方法をまとめます

PHPz
リリース: 2023-04-04 10:22:19
オリジナル
2230 人が閲覧しました

Docker は急速にアプリケーション コンテナ化ソリューションの代名詞になりつつありますが、Docker イメージのサイズは、Docker を使用する際に陥りやすいジレンマの 1 つとなります。多くの Docker イメージには便利なコンポーネントが多数含まれていますが、ハード ドライブのスペースを多く占有する不要な要素も多く含まれていることは明らかです。これは、特に多数の Docker イメージを同時にデプロイする必要がある場合に問題になる可能性があります。これらの Docker イメージのサイズを最小限に抑えるにはどうすればよいでしょうか?この記事では、Docker イメージをスリム化するのに役立ついくつかの方法を紹介します。

  1. 小さい方の画像をベース画像として選択します。

Docker イメージを構築する場合、基本イメージは非常に重要です。これらには Docker イメージの主要コンポーネントが含まれているため、適切なベース イメージを選択すると、Docker イメージのサイズを大幅に削減できます。 Docker イメージをスリム化するには、より小さいベース イメージを選択するようにしてください。

たとえば、Python アプリケーションを作成する場合、Alpine Linux には必要なパッケージとライブラリのみが含まれているため、サイズが Ubuntu よりもはるかに小さいため、Ubuntu よりも Alpine Linux を使用する方が適しています。

  1. 複数の RUN 命令を 1 つの命令に結合します。

Dockerfile 内の各 RUN 命令により、コンテナー内に新しいイメージ レイヤーが作成されます。これは、RUN 命令を使用するたびにイメージのサイズが増加することを意味します。したがって、可能な限り複数のコマンドを 1 つの RUN 命令に結合することが非常に重要です。

これは例です:

# 不推荐的写法:
RUN apt-get update && apt-get install -y package1 package2 \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# 推荐的写法:
RUN apt-get update \
    && apt-get install -y package1 package2 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
ログイン後にコピー
  1. 不要なファイルを削除します。

Docker イメージをビルドすると、不要なファイルが多数含まれる場合があります。これには、パッケージのキャッシュやその他の中間生成ファイルが含まれる場合があります。これらのファイルは画像内で多くのスペースを占有するため、これらのファイルを削除すると画像のサイズを大幅に削減できます。

スペースを占有する可能性のあるファイルは次のとおりです:

  • /var/cache/apt/archives
  • /usr/share/doc
  • /usr/share/man
  • /usr/share/info
  • /usr/share/locale
  • #/usr/share/gtk-doc
次のコマンドを使用してそれらを削除できます。

RUN apt-get update \
    && apt-get install -y package1 package2 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && rm -rf /var/cache/apt/archives/* \
    && rm -rf /usr/share/doc/* \
    && rm -rf /usr/share/man/* \
    && rm -rf /usr/share/info/* \
    && rm -rf /usr/share/locale/* \
    && rm -rf /usr/share/gtk-doc/*
ログイン後にコピー
    より小さい代替手段を使用してください。
ライブラリやツールを使用することもありますが、実際にはそのすべての機能が必要というわけではありません。この場合、軽量の代替手段を使用することは、画像サイズを小さくする良い方法です。

たとえば、コンテナ内で Java アプリケーションを実行する必要がある場合、Oracle JDK は OpenJDK よりも大きい可能性があります。この場合、Oracle JDK よりも小さい OpenJDK を使用する方がよいかもしれません。

    圧縮/解凍。
アプリケーションを Docker イメージにパッケージ化する場合は、アプリケーション ファイルを圧縮して、イメージ内で使用するスペースを少なくします。 Docker コンテナーの実行中に「docker run」コマンドを使用すると、これらのファイルはコンテナー内で自動的に解凍されます。

次は例です:

# 将文件压缩并将其移动到容器中。
tar -czvf myapp.tar.gz /path/to/myapp
mv myapp.tar.gz /docker/myapp/

# 在Dockerfile中使用ADD指令将文件解压并复制到容器中。
ADD myapp.tar.gz /app/
ログイン後にコピー
要約すると、より小さいベース イメージを選択し、複数の RUN 命令を 1 つの命令にマージし、不要なファイルを削除し、より小さい置換を使用することによって、イメージを圧縮/解凍すると、Docker イメージのサイズを大幅に削減できます。これらの方法を通じて、Docker イメージに必要なファイルとコンポーネントのみが含まれるようにすることで、コンテナーのデプロイとスケーリングのサイズと複雑さを軽減できます。

以上がDocker イメージをスリム化するいくつかの方法をまとめますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート