Docker image suffix - lifeisegg2k/Study GitHub Wiki

Docker image suffix

-stretch / -buster / -jessie

  • StretchBuster、または jessie でタグ付けされたimageは、さまざまな Debian リリースのコードネームです。
    • Buster : Debian 10.4 のコードネーム
    • Stretch : Debian 9.* のコードネーム
    • Jessie : Debian 8.* のコードネーム
    • Bullseye / Bookworm : 開発中のコードネーム
  • Debian OS の特定のバージョンと互換性がある場合選択

-slim

  • -slim image は、full image のペアダウンバージョン
  • 通常、特定のツールを実行するために必要な最小限のパッケージのみをインストールする
    Pythonの場合、これは python を実行するための最小パッケージであり、node.js でも同じです
  • -slim image はサイズが小さいので、以下の場合使用するのをオススメ
    • スペースに制約があり、
    • フルバージョンが必要ない場合
  • -slim image を使用するときは、
    • 必ず徹底的にテストしてください。
    • 原因不明のエラーが発生した場合はある

-alpine

  • -alpine image は、コンテナ内で使用するために特別に構築された OS である Alpine Linux Project に基づいてる
    • サイズが小さいため、最も人気のある画像バリエーション
    • ただし、一部のチームは、これらの image はデバッグが困難な互換性の問題を引き起こす可能性があるため、alpine から離れています
    • 具体的には、Python imageを使用する場合
      • 一部のホイールは Debian と互換性があるように構築
      • alpine ベースの image で動作するように再コンパイルする必要あり
  • -alpine image を使用する主な理由
    • 結果の画像をできるだけ小さくすること
    • ベース image は 5MBより小さくなる
    • Python ベースの image(alpine ベースの image に Python を追加)は現在 78.9MB
    • 非常に小さい
    • ストレージが問題になる場合は強くオススメ
  • 欠点
    • 必要になる可能性のあるいくつかのパッケージが含まれていない
    • 主に、glibc の代わりにスリムな musllib を使用
    • アプリケーションに特定の libc 要件がある場合、問題が発生する可能性があり
  • -alpine image に必要なものが不足している場合
    • いつでも直接 Dockerfile にインストールできるので、image は必要なものだけに保たれる
    • 外部パッケージをインストールする場合、Dockerfile が変更されることに注意
    • パッケージをインストールする apk 代わりに apt-get を使用する
  • -alpine image を使用して Dockerfile のビルドで原因不明の問題が発生した場合
    • full image に切り替えて、問題が解決するかどうかを確認してください

-windowsservercore

私はめったにウィンドウを使用しません。私は今Mac / Linuxキャンプにしっかりといますが、アプリケーションがWindowsまたはWindows Serverでのみ実行される場合、これはあなたのためのimageです。

どちらを選びますか?

一般的なガイドラインです

  • 何かをすばやく起動して実行する必要があり、スペースの制約がなく、テストする時間があまりない場合は、事実上の image から始める
  • ここでの私の主な関心事は、image に箱から出して作業するために必要なすべてのものが含まれていること
  • それほど心配する必要はありませんが、この image は最大になる
  • ストレージが問題で、Python などの特定の言語を実行するために最小限のパッケージのみが必要であることがわかっている場合は、-slimを使用します。
  • 徹底的にテストする時間があり、ストレージを極端な制約があるプロジェクトでは、-alpine image を使用
    • ただし、これによりビルド時間が長くなり、バグがわかりにくくなる可能性があることに注意
    • Docker コンテナーを新しい環境に移植する際に問題が発生した場合、または新しいパッケージを追加するときに何かが壊れた場合は、-alpine image が原因である可能性があります。
  • 最後に、常に特定の画像の DockerHub ページの一番下までスクロールし、画像を選択するための提案について読んでください。