LoginSignup
45
39

More than 5 years have passed since last update.

GCP(GCE)に手軽にDockerコンテナをデプロイする

Last updated at Posted at 2018-09-23

概要

GCPにDockerコンテナをデプロイする方法はいくつかありますが、GCE(compute engine)の機能を使うのが最も簡単です。

コンテナのイメージを指定してインスタンスを作るだけで、dockerのインストールやコンテナの起動は自動で実行されます。

手順

さっそく試してみましょう。gcloudコマンドを使うので、まだインストールされていない人はこちらを参考にどうぞ。

nginxの最新イメージでコンテナをデプロイします。

$ gcloud compute instances create-with-container my-instance --container-image=nginx

my-instanceという名前の仮想マシンが1台起動し、そこにnginxコンテナがデプロイされました。
ここでは、インスタンスサイズなどはデフォルトの設定が使われていますが、細かく指定することも可能です。(参照:gcloud compute instances create-with-container -h

また、イメージはDocker HubやGCR(Google Container Registry)のものを指定できます。

確認してみましょう。GCPのファイアウォールの設定でHTTPの受信を許可してから下記を実行します。

curl $(gcloud compute instances describe my-instance --format=json | jq -r  .networkInterfaces[].accessConfigs[].natIP)

nginxからのレスポンスが確認できたと思います。

補足など

仮想マシンへのコンテナのデプロイは、GCEでは標準機能として用意されているため、上記のようにコマンド一つで簡単に実行できます。Webコンソールでは、インスタンスの作成画面で「このVMインスタンスにコンテナ イメージをデプロイします」というチェックボックスがあります。

コンテナ実行時のパラメータ(環境変数など)も設定することが可能です。仮想マシンのOSは「Container-Optimized OS」というGCPで提供されているものになります。Ubuntuなどは使えません。コンテナをデプロイしたら、その後新しいバージョンで更新する必要もでてくるかと思いますが、そのときはupdate-containerというコマンドが用意されています。

通常のインスタンスのように、インスタンステンプレートを作成し、それに基づきオートスケーリングの設定をすることも可能です。

注意すべき点としては、コンテナ一つにつき仮想マシン1台が必要になります。GCPのマニュアルには、「一つの仮想マシンに複数のコンテナをデプロイしたい場合は、GKE(kubernetes engine)を検討してね」とありました。

ドキュメント

45
39
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
45
39