LoginSignup
3
1

More than 5 years have passed since last update.

ContainerRegistry(GCR)に登録されたDockerイメージをGCE上で動かす

Last updated at Posted at 2019-04-17

ContainerRegistryに登録したDockerイメージをGCE上で動かしたい!

※以前書いた下記記事の続きです

・ローカルからContainerRegistry(GCR)にDockerイメージをpushする
https://qiita.com/issei_0403/items/c27b2c30adf0455a6218

・werckerのdocker-pushでDockerイメージをContainer Registry(GCR)に登録する
https://qiita.com/issei_0403/items/d2197a7756cbd1de5b49

............ContainerRegistry(GCR)に登録されているDockerイメージをGCEに乗っけてJavaのバッチ処理を動かしたいです!!!!!!!

というわけで本題に入ります。

GCEインスタンス作成

何はともあれインスタンスを作りましょう。
『このVMインスタンスにコンテナイメージをデプロイする。』にチェックをつけ、ブートディスクの種類はContainer-Optimized OSを選択します。
スクリーンショット 2019-04-17 17.55.44.png

コンテナイメージについては、GCRの画面上で確認して入力してください。『gcr.io/【プロジェクトID】/イメージ名』って感じです。
スクリーンショット 2019-04-17 18.06.01.png

サービスアカウントについては、本インスタンスから他サービスに対する権限がないとダメなので、適宜設定してください。私の場合DB接続したりするので、下記の通り設定しました。
スクリーンショット 2019-04-17 18.36.44.png

cloud-initの設定

GCEインスタンス上にのせたDockerコンテナがどういう挙動をするかをここで設定します。
スクリーンショット 2019-04-17 18.12.11.png

key、valueの組み合わせで設定します。
具体的には、、、

google-logging-enabled
true
user-data
#cloud-config
users:
- name: cos-user

runcmd:
- sudo usermod -aG docker cos-user
- sudo -u cos-user docker-credential-gcr configure-docker
- sudo -u cos-user docker run -it gcr.io/【プロジェクトID】/【イメージ】 > /var/log/cloud-init.log
- shutdown -h now
gce-container-declaration
  containers:
    - name: 【イメージ】
      image: gcr.io/【プロジェクトID】/【イメージ】
      stdin: false
      tty: false
  restartPolicy: Never

# This container declaration format is not public API and may change without notice. Please
# use gcloud command-line tool or Google Cloud Console to run Containers on Google Compute Engine.

※今回は一度切り動いてくれればいいbatch的な処理なので、restartPolicy: Neverとしています。Alwaysにすると、Dockerコンテナのプロセスが終了→起動を繰り返すような動きになります。

インスタンスが作成されると、一覧に表示されます。
スクリーンショット 2019-04-17 18.08.41.png

ほんとに動いてるか確認する

インスタンス一覧のSSHをクリックしてインスタンス内に入ります。

$docker ps -a

でcontainer idを確認して、

$docker logs 【container id】

でログが見れるはずです。
また、/var/log/cloud-init.logにログを出力するよう設定しているので、
インスタンス一覧の右側にあるボタン→ログを表示でstack driverでも確認できます。

スクリーンショット 2019-04-17 18.24.16.png

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1