Artifact Registry は、コンテナ イメージを管理するための推奨サービスです。Container Registry のサポートは継続されますが、重要なセキュリティ修正のみが適用されます。Artifact Registry への移行については、こちらをご覧ください

キャッシュに保存された Docker Hub イメージの pull

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Container Registry は、頻繁にアクセスされる公開 Docker Hub イメージを mirror.gcr.io にキャッシュに保存します。キャッシュに保存された公開イメージが使用可能な場合はそれを使用して Docker デーモンを構成でき、キャッシュに保存されたコピーがない場合は Docker Hub からイメージを pull できます。

Cloud Build や Google Kubernetes Engine などの Google Cloud サービスは、Docker Hub からイメージを pull する前に、キャッシュに保存されたイメージを自動的に確認します。

mirror.gcr.io でキャッシュに保存されたイメージは:

  • Google 管理のリポジトリに格納されます。
  • Docker Hub の停止から保護されます。
  • Google Cloud エコシステムと容易に統合できます。
  • Docker Hub との同期が維持されます。

Docker デーモンを構成する

Container Registry キャッシュからイメージを pull するように Docker デーモンを構成するには:

CLI

  1. 次のいずれかの方法でデーモンを構成します。

    • スタートアップ時に Docker デーモンを自動的に構成するには、/etc/docker/daemon.json に次の値を設定します。

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • デーモンの起動時に Container Registry のホスト名を渡します。

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • /etc/default/docker ファイルに次の行を追加します。

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. Docker デーモンを再起動します。

    • Linux の場合は、次のいずれかのコマンドを実行します。

      sudo service docker restart
      

      または

      sudo service docker stop && sudo service docker start
      
    • macOS または Windows の場合は、次のコマンドを実行します。

      docker-machine restart
      

Docker UI

  1. Docker の [設定] メニューを開きます。
  2. [デーモン] をクリックします。
  3. [詳細] をクリックします。JSON フィールドに、https://mirror.gcr.io を値として registry-mirrors キーを追加します。

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. [Apply & Restart] をクリックします。

キャッシュが正しく構成されていることを確認するには、次のコマンドを実行します。

docker system info

次のように、出力に Registry Mirrors が含まれています。

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 17.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
...
Registry Mirrors:
 https://mirror.gcr.io

キャッシュに保存されたイメージを pull する

Container Registry は頻繁にリクエストされるイメージをキャッシュに追加し、以降のリクエストで使用できるようにします。また、リクエストされなくなったイメージを定期的に削除します。

Container Registry キャッシュを使用するように Docker デーモンを構成した後は、docker pull コマンドを使用して公開 Docker Hub イメージを pull すると、Docker で次の手順が実行されます。

  1. Docker デーモンが Container Registry キャッシュをチェックし、イメージが存在する場合にはイメージをフェッチします。デーモン構成に他の Docker ミラーが含まれている場合、デーモンはキャッシュに保存されたイメージのコピーが存在するかどうか各ミラーを順番に確認します。
  2. それでもイメージが見つからない場合、Docker デーモンは Docker Hub の正規リポジトリからイメージをフェッチします。

キャッシュに保存されたイメージを pull しても、Docker Hub のレート制限にはカウントされません。ただし、特定のイメージが長期間キャッシュに保存されるという保証はありません。Docker デーモンを構成することで、mirror.gcr.io にキャッシュに保存されたイメージのみが取得されます。キャッシュに保存されたイメージのコピーが存在しない場合、mirror.gcr.io から直接 pull するリクエストは失敗します。

次のステップ