Container Registry のクイックスタート

Container Registry は、Google Cloud Platform で実行される非公開のコンテナ イメージ レジストリです。

このクイックスタートでは、次の方法について説明します。

  • Docker イメージをビルドする
  • イメージをプロジェクトの Container Registry に push する
  • イメージをプロジェクトの Container Registry から pull する

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP Console のプロジェクト セレクタのページで、GCP プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。 プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Container Registry必要な を有効にします。

    を有効にする

  5. Cloud SDK をインストールして初期化します。
  6. Docker をインストールします。 Ubuntu や Debian など、Linux ベースのオペレーティング システムを使用している場合は、ユーザー名を docker グループに追加して、sudo を使用しなくても Docker を実行できるようにします。
    sudo usermod -a -G docker ${USER}

    ログアウトして再度ログインすると、グループ メンバーシップの変更が反映されます。仮想マシンを使用している場合、メンバーシップの変更を有効にするために、仮想マシンの再起動が必要になることがあります。

  7. Docker を開きます。Docker が実行されていることを確認するには、現在の時刻と日付を返す次の Docker コマンドを実行します。
  8. docker run busybox date

このクイックスタートでは、Cloud Shell、または Cloud SDK がインストールされている環境を使用します。

Docker イメージをビルドする

このクイックスタートでは、Container Registry に push するイメージとして、次の Docker イメージをビルドします。この Docker イメージには、小さな Python ウェブアプリが含まれます。このアプリは Flask のウェブ フレームワークを使用して、「Hello, World!」というメッセージを表示するウェブページを提供します。

Docker イメージを作成するには:

  1. 3 つの Docker イメージ ファイルを格納するディレクトリを作成します。

  2. このディレクトリに、Dockerfilerequirements.txtapp.py の 3 つのファイルを作成します。各ファイルの内容に含める必要があるものについては、以下の例をご覧ください。

Dockerfile

# The Dockerfile defines the image's environment
# Import Python runtime and set up working directory
FROM python:2.7-alpine
WORKDIR /app
ADD . /app

# Install any necessary dependencies
RUN pip install -r requirements.txt

# Open port 80 for serving the webpage
EXPOSE 80

# Run app.py when the container launches
CMD ["python", "app.py"]

requirements.txt

# This file defines the image's dependencies
Flask

app.py

# The Docker image contains the following code
from flask import Flask
import os
import socket

app = Flask(__name__)

@app.route("/")
def hello():
    html = "<h3>Hello, World!</h3>"
    return html

if __name__ == "__main__":
  app.run(host='0.0.0.0', port=80)

Docker イメージをビルドするには、イメージのファイルが含まれているディレクトリから、次の Docker コマンドを実行します。

docker build -t quickstart-image .

これで、ローカルマシンに Docker イメージが作成されました。

イメージを Container Registry に追加する

gcloud コマンドライン ツールを認証ヘルパーとして使用するように docker を構成する

イメージを push または pull するには、gcloud コマンドライン ツールを使用して Container Registry へのリクエストを認証するように Docker を構成する必要があります。これを行うには、次のコマンドを実行します(実行する必要があるのは一度だけです)。

gcloud auth configure-docker

イメージにレジストリ名をタグ付けする

Docker イメージを Container Registry に push する前に、そのイメージにレジストリ名をタグ付けする必要があります。これにより、イメージを特定の場所に push するように docker push コマンドが構成されます。このクイックスタートでは、ホストの場所は gcr.io です。

Docker イメージにタグを付けるには、次のコマンドを実行します。

docker tag quickstart-image gcr.io/[PROJECT-ID]/quickstart-image:tag1

ここで

  • [PROJECT-ID] は、Google Cloud Platform Console プロジェクト ID です。対象の ID をコマンドに追加します。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • gcr.io はホスト名です。
  • quickstart-image は Docker イメージの名前です。
  • tag1 は、Docker イメージに追加するタグです。タグを指定しない場合は、Docker でデフォルトのタグ latest が適用されます。

イメージを Container Registry に push する準備ができました。

イメージを Container Registry に push する

gcloud を認証ヘルパーとして使用するように docker を構成し、ローカル イメージにレジストリ名をタグ付けしたら、そのイメージを Container Registry に push することができます。

Docker イメージを push するには、次のコマンドを実行します。

docker push gcr.io/[PROJECT-ID]/quickstart-image:tag1

[PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

新しいホストの場所にイメージを push すると、プロジェクトに固有の基になるストレージ バケットが作成されます。Container Registry でホストされているイメージを確認するには、GCP Console を使用するか、ウェブブラウザでイメージのレジストリ名(http://gcr.io/[PROJECT-ID]/quickstart-image)にアクセスします。

イメージを Container Registry から pull する

Container Registry からローカルマシンにイメージを pull するには、次のコマンドを実行します。

docker pull gcr.io/[PROJECT-ID]/quickstart-image:tag1

[PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

出力は次のようになります。

latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for gcr.io/[PROJECT-ID]/quickstart-image:tag1

クリーンアップ

このチュートリアルで使用したリソースについて GCP アカウントに課金されないようにする手順は次のとおりです。

次のコマンドを実行して Container Registry から Docker イメージを削除します。

gcloud container images delete gcr.io/[PROJECT-ID]/quickstart-image:tag1 --force-delete-tags

[PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

次のステップ

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

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

Container Registry のドキュメント