Container Registry の Docker Hub ミラーの使用

Container Registry は、Container Registry ユーザーが頻繁にリクエストする Docker Hub 公開イメージをミラーリングします。これらのイメージには、次のような利点があります。

  • Google 所有のリポジトリに格納されます。
  • Docker Hub の停止から保護されます。
  • Google Cloud Platform エコシステムと容易に統合できます。
  • Docker Hub レジストリ ミラーとの同期が維持されます。Docker Hub で行われたイメージの変更は、Container Registry ミラーにより、30 分以内に取得されます。

Container Registry の Docker Hub レジストリ ミラーからイメージをフェッチするように Docker デーモンを構成できます。Container Registry がミラーとして構成されているときに、公開イメージをフェッチすると次の処理が行われます。

  • Docker デーモンが Container Registry レジストリをチェックし、イメージが存在する場合にはイメージをフェッチします。複数のミラーを構成できます。たとえば、独自のローカルミラーを使用することもできます。イメージが見つかるまで、Docker デーモンは構成済みのそれぞれのミラーをチェックします。
  • イメージが見つからない場合、Docker デーモンは Docker Hub の正規リポジトリからイメージをフェッチします。
  • Container Registry は頻繁にリクエストされるイメージをミラーに追加し、以降のリクエストに対応できるようにします。

Container Registry のミラーはキャッシュであり、Container Registry はイメージのリクエストを受信すると、そのイメージをミラーリングします。Container Registry は、リクエストされなくなったイメージを定期的に削除します。

Container Registry ミラーからイメージをフェッチする

Docker デーモンが Container Registry のミラーからイメージをフェッチするように構成するには、以下の手順に従います。

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 デーモンを再起動します。

    sudo restart docker
    sudo service docker stop && sudo service docker start
    docker-machine restart
    

Docker UI

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

    {
      "registry-mirrors" : [
        "http://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:
   http://mirror.gcr.io

Docker Hub イメージを pull するために使用される docker pull コマンドは、まず Container Registry ミラーから要求されます。

ミラーリングされたイメージの一覧を表示する

リポジトリのリストや、特定のリポジトリのタグとダイジェストのリストを表示できます。

  • Container Registry ミラーにあるリポジトリの一覧を表示するには、次のコマンドを実行します。

    gcloud container images list --repository=mirror.gcr.io
    

    このコマンドを実行すると、mirror.gcr.io 直下にあるリポジトリのリストが表示されます。これらのリポジトリの一部はネストされています。たとえば、mirror.gcr.io/library の下にはさらに多くのリポジトリがネストされています。

    ネストされたリポジトリのリストを表示するには、次のコマンドを実行します。

    gcloud container images list --repository=[REPO]
    

    [REPO]mirror.gcr.io の下にあるリポジトリです。例: mirror.gcr.io/library

    このコマンドを実行すると、指定したリポジトリの直下にあるリポジトリの一覧が表示されます。

  • これらのリポジトリのいずれかに含まれるタグとダイジェストを表示するには、次のコマンドを実行します。

    gcloud container images list --repository=mirror.gcr.io/[REPO]
    

    [REPO] は、mirror.gcr.io の下にネストされているリポジトリです。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...