GitHub

GitHub Container Registry(ghcr.io)の料金とは|無料枠・課金条件とDocker Hub/ECR比較【2026年版】

GitHub Container Registry(ghcr.io)は、GitHubが提供するコンテナイメージの保存・配布サービスです。料金について先に結論を言うと、2026年6月時点ではコンテナイメージのストレージと帯域はパブリック・プライベートを問わず無料で、GitHubは課金を始める場合も最低1か月前に告知すると明言しています。つまり「github container registry 料金」を調べてたどり着く多くの人が想定する「プライベートだと課金される」という前提は、コンテナ画像に関しては現時点では当てはまりません。本記事では、この無料の範囲と例外、GitHub Packages全体の無料枠と従量課金の仕組み、Docker HubやAmazon ECRとの料金比較、そしてdocker loginからpushまでの使い方までを、2026年の最新情報で整理します。料金体系は変わりうるため、最新の数値は必ず公式でご確認ください。

まとめ:GitHub Container Registryの料金の結論

料金の要点は次のとおりです。判断に必要な順で並べています。

  • コンテナ画像は現在無料:ghcr.ioのコンテナイメージは、ストレージも帯域もパブリック/プライベートを問わず現時点で無料。GitHubは課金開始時に最低1か月前に告知するとしています。
  • 無料枠の従量課金はPackages一般の話:プラン別のストレージ/データ転送の無料枠と超過課金は、npmやMaven等を含むGitHub Packages全体の枠組みで、コンテナ画像は現状その対象外です。
  • パブリックは常に無料:公開イメージのストレージ・配布、およびデータ転送INは無料。GitHub ActionsがGITHUB_TOKENでpullする転送も無料です。
  • Docker Hubとの違い:Docker Hubの無料プランにあるpull回数制限のような上限が、ghcr.ioにはありません。CI/CDでの大量pullに向きます。
  • 将来に備える:「現在無料」は恒久保証ではないため、不要イメージの削除やタグ運用をいまのうちに整えておくのが安全です。

以降で、無料の範囲・例外・他社比較・使い方を順に掘り下げます。

GitHub Container Registry(ghcr.io)とは|料金を理解する前提

料金の話に入る前に、ghcr.ioが何で、GitHubのどの課金体系に属するのかを押さえると誤解を避けられます。

コンテナレジストリとghcr.ioの基本

コンテナレジストリは、Dockerなどのコンテナイメージを保存し、pull(取得)・push(公開)するための保管庫です。レジストリの種類や選び方、マネージドとセルフホストの選定基準など全体像はコンテナレジストリとは何かと選定の判断軸で解説しています。ghcr.ioはGitHubが運用するそのレジストリで、ホスト名 ghcr.io をイメージ名の先頭に付けて利用します。GitHubリポジトリと同じ権限・アカウントで扱えるため、すでにGitHubを使っているチームは新たな認証基盤を用意せずに始められます。

GitHub Packagesの一部としての位置づけ

ghcr.ioはGitHub Packagesというパッケージ配布機能群の一部です。GitHub Packagesにはnpm・Maven・NuGet・RubyGemsなどのレジストリも含まれ、これらには後述するストレージ・データ転送の無料枠と従量課金が適用されます。重要なのは、同じPackages傘下でもコンテナイメージ(Container registry)だけは現在無料という例外扱いになっている点です。料金を調べる際は、この「Packages一般の課金」と「コンテナレジストリの現在無料」を分けて考える必要があります。

GitHub Container Registryの料金体系【2026年最新】

ここが本題です。コンテナ画像そのものの料金と、Packages全体の無料枠を分けて説明します。

コンテナ画像のストレージ・帯域は「現在無料」

GitHub公式ドキュメントは、コンテナレジストリの画像ストレージと帯域について「currently free(現時点で無料)」と明記し、方針を変更する場合は最低1か月前に利用者へ通知するとしています。これはパブリックイメージだけでなくプライベートイメージにも及びます。古い解説記事の多くは「プライベートは無料枠を超えると課金」と書いていますが、コンテナ画像に関しては2026年6月時点で課金は発生しません。CI/CDで頻繁にpush/pullしても、コンテナ画像の保存・転送そのものへの課金はない、というのが現状の正確な理解です。

GitHub Packages全体の無料枠(プラン別ストレージ・データ転送)

一方、GitHub Packages全体(コンテナ画像を除く各種パッケージ)には、プランごとに無料枠が設けられています。次の枠はGitHub Actionsのストレージとも共有される点に注意してください。コンテナ画像は現在この従量対象外ですが、将来課金が始まった場合の目安として把握しておく価値があります。

プラン ストレージ データ転送(月)
GitHub Free 500MB 1GB
GitHub Pro 2GB 10GB
GitHub Free(組織) 500MB 1GB
GitHub Team 2GB 10GB
GitHub Enterprise Cloud 50GB 100GB

このストレージ枠はPackages・Actionsのアーティファクト・Actionsのキャッシュで共有され、合算が上限を超えられません。

無料枠を超えた場合の従量課金とActions経由の無料扱い

Packages一般で無料枠を超えると、データ転送は転送量(GB)に対して、ストレージは1時間あたりの使用量を月単位で集計して課金されます。具体的な単価はGitHubの料金計算ツールで見積もる方式に移行しているため、金額はGitHub公式ドキュメント(GitHub Packages billing)で確認してください。なお、パブリックパッケージの利用とデータ転送INは無料で、GitHub ActionsがGITHUB_TOKENを使ってDLする転送も無料です。ただしセルフホストランナーからPATでDLする転送は、Packages一般では課金対象になる点に注意してください(コンテナ画像自体は現在無料です)。支払い方法が未登録の場合、無料枠を使い切るとそこで利用が止まり、想定外の課金は起きない設計になっています。

パブリック・プライベートとプラン別の料金の違い

「プライベートにすると高くつくのか」という疑問に答えます。結論はコンテナ画像なら現在は変わりません。

パブリックは常に無料、プライベートも現在は無料

パブリックイメージは誰でもpullでき、ストレージ・配布とも無料です。プライベートイメージは許可したユーザー・チームだけがアクセスできますが、コンテナ画像である限り現在は同じく無料で、可視性を変えても料金は変わりません。料金ではなく「誰に見せるか」というセキュリティ要件で公開設定を選べばよい、というのが現状です。push直後のイメージは既定でプライベートになるため、公開したい場合だけパッケージ設定からPublicへ切り替えます。

Free・Pro・Team・Enterpriseの選び方

コンテナ画像が現在無料である以上、プラン選定はコンテナの料金ではなく、必要な管理機能で決めるのが妥当です。個人や小規模ならFree/Proで十分です。チームでアクセス権限を細かく分けたい、組織単位で管理したいならTeam、SAML/SCIMやIPアドレス制限・監査ログの拡張などコンプライアンス要件が強いならEnterprise Cloudを選びます。コンテナ以外のパッケージ(npm等)を大量に使う場合のみ、上表の無料枠がプラン選定の判断材料になります。

Docker Hub・Amazon ECRとの料金比較

移行や新規採用で比較されやすいDocker HubとAmazon ECRとの違いを、料金観点で整理します。

項目 GitHub Container Registry Docker Hub Amazon ECR
コンテナ画像の料金 現在無料 無料枠+有料$9〜(年払Pro) 従量課金
pull回数制限 なし 無料は制限あり 制限なし(従量)
プライベート 可(現在無料) 無料は範囲限定 可(従量)
主な連携 GitHub Actions 汎用 AWS(ECS/EKS)

Docker Hubとの違い(pull制限と有料プラン)

Docker Hubは無料のPersonalプランにpull回数の制限があり、CI/CDで頻繁にpullすると上限に当たりやすいのが弱点です。制限を外すにはPro(年払で月$9、月払で月$11)、Team(年払で1ユーザー月$15)、Business(1ユーザー月$24)などの有料プランが必要です。ghcr.ioはこうしたpull回数制限がなく、コンテナ画像が現在無料のため、特にGitHub Actions中心のパイプラインではコスト面で有利です。Docker Hubの最新の制限値・料金は変動するため、公式でご確認ください。

Amazon ECRとの違い(従量課金)

Amazon ECRはストレージ(GB単位)とデータ転送量に応じた従量課金が基本で、使った分だけ確実に費用が発生します(例としてプライベートはストレージ約$0.10/GB・月〜が長年の代表値ですが、最新はAWS公式でご確認ください)。AWS(ECSやEKS)に深く統合したい場合は有力ですが、料金の予測可能性という点では「現在無料」のghcr.ioと性格が異なります。AWS環境でのコンテナ運用やECRへのpush手順は、AWS ECRとはDockerイメージをpushする手順【完全ガイド版】で詳しく解説しています。GitHubでソースを管理しているならghcr.io、AWSで完結させたいならECR、という棲み分けが基本線です。Azure上のコンテナー基盤にイメージを配るなら、Azure Container Registry(ACR)の仕組みと料金プランを解説した記事も選択肢になります。

将来の課金開始に備えて今からできる準備

ここは楽観で終わらせず、条件を付けて言い切ります。コンテナ画像が「現在無料」なのは事実ですが、GitHubは1か月前告知の上で課金へ移行する余地を残しています。無料を恒久前提にしてイメージを無制限に溜め込む運用は、課金開始時に一気にコスト化するリスクがあります。いま整えておくべきは三つです。第一に、古いタグや使われていないイメージを定期的に削除する運用(保持ポリシーやスクリプトでの自動削除)を仕込むこと。第二に、latest固定をやめてセマンティックバージョンやコミットハッシュでタグを管理し、何が本番で使われているかを追えるようにすること。第三に、CI/CDのpush頻度とイメージサイズを見直し、マルチステージビルドで不要レイヤを削っておくことです。これらは課金の有無にかかわらずレジストリを健全に保つ施策で、将来課金が始まっても影響を最小化できます。逆に、無料だからと整理を先送りにするのは、最も避けたい失敗パターンです。

GitHub Container Registryの使い方|docker loginからpushまで

料金を確認したら、実際に使う手順です。基本はdocker login・build・pushの三段階です。

PATでログインしてイメージをpush/pull

まず認証します。GitHubのPersonal Access Token(PAT)に write:packages(読み取りのみなら read:packages)スコープを付与し、次のようにログインします。PATの作成方法やclassic/fine-grainedの違いはGitHub PAT(Personal Access Token)とは?作成方法・classic/fine-grainedの違い・スコープ・有効期限を解説を参照してください。

echo $TOKEN | docker login ghcr.io -u USERNAME --password-stdin
docker build -t ghcr.io/USERNAME/IMAGE:1.0.0 .
docker push ghcr.io/USERNAME/IMAGE:1.0.0

USERNAMEは個人または組織名、IMAGEはイメージ名です。pushしたイメージは既定でプライベートになります。コマンドライン操作をまとめて自動化したい場合は、GitHub CLIとは?コマンドラインでGitHub操作を効率化するツールの概要も役立ちます。

GitHub ActionsでghcrへpushするCI例

GitHub Actionsを使えば、mainブランチへのpushをトリガーにビルドからghcrへのpushまで自動化できます。GITHUB_TOKENで認証すれば、別途PATを管理する必要がなく、転送も無料です。

name: build-and-push
on:
  push:
    branches: [ main ]
jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
    steps:
      - uses: actions/checkout@v4
      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - uses: docker/build-push-action@v6
        with:
          push: true
          tags: ghcr.io/${{ github.repository }}:latest

permissionsに packages: write を付けるのが要点です。これが無いとpushが権限エラーで失敗します。

よくある質問(FAQ)

GitHub Container Registry(ghcr.io)の料金はいくらですか?

コンテナイメージは現在無料です(2026年6月時点)。ストレージと帯域はパブリック・プライベートを問わず無料で、GitHubは課金を始める場合も最低1か月前に告知するとしています。npmなど他のGitHub Packagesにはプラン別の無料枠と従量課金がありますが、コンテナ画像は現状その対象外です。最新の料金は公式でご確認ください。

プライベートイメージにすると課金されますか?

コンテナ画像であれば、現時点ではプライベートでも無料です。公開設定(パブリック/プライベート)は料金ではなくアクセス範囲を決めるための設定で、可視性を変えてもコンテナ画像の料金は変わりません。

Docker Hubとどちらが安いですか?

CI/CD中心ならghcr.ioが有利な場面が多いです。Docker Hubは無料プランにpull回数制限があり、外すにはPro(月$9〜)などの有料プランが必要です。ghcr.ioはpull回数制限がなく、コンテナ画像が現在無料のため、特にGitHub Actionsからの大量pullでコストを抑えられます。

GitHub Actionsでpull/pushしても無料ですか?

はい。GitHub ActionsがGITHUB_TOKENを使って行うpullの転送は無料です。加えてコンテナ画像自体が現在無料のため、Actions経由のビルド・push・pullで料金は発生しません。

無料枠を超えるとどうなりますか?

これはコンテナ画像以外のGitHub Packages(npm等)の話です。支払い方法が未登録なら無料枠を使い切った時点で利用が止まり、登録済みなら超過分が従量課金されます。コンテナ画像は現在無料枠・従量課金の対象外です。

関連記事

資料請求

RELATED POSTS 関連記事