Skip to content
Latchkey

Skopeo vs crane: コンテナ registry を扱う

どちらも Docker デーモンを必要とせず、registry に対して直接コンテナイメージを移動・検査します。Skopeo (Red Hat) は多くの transport にまたがって機能豊富で、crane (Google go-containerregistry) は軽量、高速、スクリプタブルです。

Skopeo と crane はどちらも、イメージをローカルのデーモンに取り込むことなくコピー、検査、管理でき、CI に理想的です。Skopeo は多くの transport と署名ワークフローをサポートし、crane はミニマルでスクリプト内でよく組み合わさります。ここでは率直な比較を示します。

Skopeocrane
出自Red Hat (containers/)Google (go-containerregistry)
デーモンレスはいはい
registry 間コピーはい (多くの transport)はい (registry から registry へ)
pull なしの検査はいはい (config、manifest、digest)
追加機能署名、削除、sync、多くの transport軽量、簡単な retag/append
フットプリントより機能が充実ミニマル、高速

機能の広さ vs ミニマリズム

Skopeo は幅広い transport (docker、dir、oci、containers-storage) と、repo の同期やローカルデーモンなしでの検査・コピーといったワークフローをサポートし、複雑な mirroring や Red Hat エコシステムに向いています。crane は意図的にミニマルで、コピー、config/manifest の検査、digest の取得、retag、layer の append を、スクリプトによく馴染むクリーンな UX で行います。

それぞれが輝く場面

広範な transport サポート、repo 同期、または Podman/Buildah ツールとのより緊密な統合が必要なときは Skopeo を選びましょう。素早くスクリプタブルな registry 操作 (digest の取得、イメージのコピー、tag の変更) を小さなフットプリントで行うなら crane を選びましょう。どちらも Docker デーモンを回避するため、制限された CI 環境でも安全です。

CI では

どちらもデーモンレスな CI タスクに最適です。registry 間でイメージを昇格させたり、pinning のために digest を読んだり、docker pull なしでイメージをミラーリングしたりできます。crane のワンライナーは shell ステップで便利で、Skopeo はより重い mirroring と署名のニーズをカバーします。

結論

広範な transport サポート、mirroring、Red Hat/Podman 近接のワークフローには Skopeo を、日常的な registry 操作のためのミニマルで高速なスクリプタブルツールには crane を選びましょう。どちらもデーモンレスで動作し、まさに CI が求めるものです。

関連ガイド