Container Registry のクイックスタート

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

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

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

始める前に

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

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

  2. GCP Console で [リソースの管理] ページに移動し、既存のプロジェクトを選択するか、新しいプロジェクトを作成します。

    [リソースの管理] ページに移動

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

    課金を有効にする方法について

  4. Container Registry API を有効にします。

    APIを有効にする

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

    docker グループにユーザー名を追加した後、システムの再起動が必要となる場合があります。

  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 にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

次のステップ

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

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