Docker のクイックスタート

このページでは、Cloud Build を使用して Docker イメージをビルドし、そのイメージを Container Registry に push する方法について説明します。最初に Dockerfile を使用してイメージをビルドし、次に同じイメージを Cloud Build ビルド構成ファイルでビルドします。

始める前に

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

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

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

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

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

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

  4. Cloud Build API を有効にします。

    APIを有効にする

  5. Cloud SDK をインストールして初期化します。

Google Cloud へのログイン

  1. gcloud コマンドライン ツールにプロジェクトへのアクセスを許可します。

    gcloud auth login
    
  2. gcloud ツールのプロジェクトを構成します。[PROJECT_ID] は、前のセクションで作成または選択した GCP プロジェクト ID です。

    gcloud config set project [PROJECT_ID]
    

ソースファイルの準備

ビルドするサンプル ソースコードが必要です。このセクションでは、簡単な Hello World と Dockerfile を作成します。

  1. 次の内容で quickstart.sh という名前のファイルを作成します。

    #!/bin/sh
    echo "Hello, world! The time is $(date)."
    
  2. 次の内容で Dockerfile という名前のファイルを作成します。

    FROM alpine
    COPY quickstart.sh /
    CMD ["/quickstart.sh"]
    
  3. ターミナル ウィンドウを開きます(まだ開いていない場合)。

  4. 次のコマンドを実行して quickstart.sh を実行可能にします。

    chmod +x quickstart.sh
    

Dockerfile によるビルド

Cloud Build を使用すると、Dockerfile で Docker イメージをビルドできます。個別のビルド構成ファイルは不要です。

quickstart.sh および Dockerfile が含まれるディレクトリから、次のコマンドを実行します([PROJECT_ID] は GCP プロジェクト ID)。

    gcloud builds submit --tag gcr.io/[PROJECT_ID]/quickstart-image .

ビルドが完了すると、次のような出力が表示されます。

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  9S    gs://[PROJECT_ID]_cloudbuild/source/1508159187.8-b0d8841d51674a30aebd1e55bb99486f.gz  gcr.io/[PROJECT_ID]/quickstart-image (+1 more)       SUCCESS

Dockerfilequickstart-image という名前の Docker イメージを作成し、Container Registry に push しました。

ビルド構成ファイルによるビルド

このセクションでは、ビルド構成ファイルを使用して、上と同じ Docker イメージをビルドします。ビルド構成の指定に基づいて、実行するタスクが Cloud Build に指示されます。

  1. quickstart.shDockerfile を含む同じディレクトリで、次の内容を含むファイルを cloudbuild.yaml という名前で作成します。このファイルがビルド構成ファイルです。ビルド時に、Cloud Build は $PROJECT_ID を実際のプロジェクト ID に自動的に置き換えます。

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/quickstart-image', '.' ]
    images:
    - 'gcr.io/$PROJECT_ID/quickstart-image'
    
  2. 次のコマンドを実行してビルドを開始します。

    gcloud builds submit --config cloudbuild.yaml .
    

ビルドが完了すると、次のような出力が表示されます。

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  8S    gs://[PROJECT_ID]_cloudbuild/source/1508158566.55-725755714baa4b7e9e99984c422ec4e2.gz  gcr.io/[PROJECT-ID]/quickstart-image (+1 more)       SUCCESS

ビルド構成ファイルを使用して quickstart-image を作成し、Container Registry にイメージを push しました。

ビルドの詳細の表示

  1. Google Cloud Platform Console で [Cloud Build] ページを開きます。

    [Cloud Build] ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

    [ビルド履歴] ページが表示されます。

    ビルド履歴ページのスクリーンショット

  3. 特定のビルドをクリックします。

    [ビルドの詳細] ページが表示されます。

  4. イメージをクリックします。

    イメージリンクのスクリーンショット

    [Container Registry] ページにイメージの詳細が表示されます。

オプション: Docker イメージを実行する

ビルドしたイメージが期待どおりに動作することを確認するため、Docker を使用してイメージを実行できます。

  1. Docker をインストールします

  2. Container Registry とやり取りするときに Container Registry 認証情報を使用するよう、Docker を構成します。

    gcloud auth configure-docker
    

    次のようなメッセージが表示されます。

    The following settings will be added to your Docker config file
    located at [/.docker/config.json]:
    
    {
      "credHelpers": {
        "gcr.io": "gcloud",
        "us.gcr.io": "gcloud",
        "eu.gcr.io": "gcloud",
        "asia.gcr.io": "gcloud",
        "staging-k8s.gcr.io": "gcloud",
        "marketplace.gcr.io": "gcloud"
      }
    }
    
    Do you want to continue (Y/n)?
    
  3. y」と入力し、Enter キーを押します。

  4. 以前ビルドした Docker イメージを実行します。[PROJECT_ID] は GCP プロジェクト ID です。

    docker run gcr.io/[PROJECT_ID]/quickstart-image
    

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

    Hello, world! The time is Fri Feb  2 16:09:54 UTC 2018.
    

クリーンアップ

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

  1. Google Cloud Platform Console で [Container Registry] ページを開きます。

    [Container Registry] ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

  3. [quickstart-image] をクリックします。

  4. すべてのイメージを選択して、[削除] をクリックします。

このクイックスタートで作成したイメージの削除は完了です。

これでクイックスタートの演習はすべて終了です。

次のステップ

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