Skip to content

SOCI Snapshotter を使用した遅延プル

SOCI Snapshotter は、コンテナ化されたスナップショット プラグインです。これにより、ビルド時の変換ステップを必要とせずに、標準のOCIイメージを遅延ロードできます。"SOCI" は、"Seekable OCI"の短縮形で"so-CHEE/ソチー"と発音します。

詳細については、 https://github.com/awslabs/soci-snapshotter を参照してください。

前提 条件

  • https://github.com/awslabs/soci-snapshotter/blob/main/docs/getting-started.md から containerd リモート スナップショット プラグイン (soci-snapshotter-grpc) をインストールします

  • 以下を /etc/containerd/config.toml に追加します。

    [proxy_plugins]
      [proxy_plugins.soci]
        type = "snapshot"
        address = "/run/soci-snapshotter-grpc/soci-snapshotter-grpc.sock"
    

  • containerdsoci-snapshotter-grpc を起動します。

nerdctl runnerdctl pull の SOCI を有効にします

⚡ 必要条件 nerdctl >= 1.5.0
  • nerdctl を --snapshotter=soci で実行します。

    nerdctl run -it --rm --snapshotter=soci public.ecr.aws/soci-workshop-examples/ffmpeg:latest
    

  • また、コンテナーを実行せずに SOCI を使用してのみイメージをプルすることもできます。

    nerdctl pull --snapshotter=soci public.ecr.aws/soci-workshop-examples/ffmpeg:latest
    

すでに SOCI インデックスを持つイメージについては、https://gallery.ecr.aws/soci-workshop-examples を参照してください。

nerdctl push の SOCI を有効にする

⚡ 必要条件 nerdctl >= 1.6.0
  • SOCIインデックスでイメージをプッシュします。nerdctl pull--snapshotterter=soci引数を追加すると、nerdctl は SOCI インデックスを作成し、インデックスをイメージと同じ宛先にプッシュします。
    nerdctl push --snapshotter=soci --soci-span-size=2097152 --soci-min-layer-size=20971520 public.ecr.aws/my-registry/my-repo:latest
    
    --soci-span-size と --soci-min-layer-size は、SOCI インデックスをカスタマイズするための 2 つのプロパティです。詳細については、 コマンド リファレンス を参照してください。