Docker のクイックスタート

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

始める前に

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

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

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

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

  3. Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。 詳しくは、課金を有効にする方法をご覧ください。

  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. すべてのイメージを選択して、[削除] をクリックします。

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

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

次のステップ

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