grasys blog

GCE上でDockerコンテナを動かす

文●松原/grasys 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はgrasys が提供する「grasys blog」に掲載された GCE上でDockerコンテナを動かす」を再編集したものです。

 こんにちは松原です。

 Dockerイメージを使用して楽に構築を行ないたいが、Docker ComposeやKubernetesを使用する程でもなく、単一のコンテナ運用を行ないたいといったケースがあると思います。

 GCPではGCE上で単一のコンテナ運用を簡単に行なうことができます。

 GCPにはコンテナ用に最適化されたOS「Container-Optimized OS」があります。

 このOSはGKEの各ノードでも使用されるOSになります。

 今回はMongoDBの公式イメージを使用してMongoDB環境を素早く構築していきます。

インスタンス作成

 GCP Consoleからインスタンスの作成を行なっていきます。

 「このVMインスタンスにコンテナイメージをデプロイします。」を選択することにより、コンテナ情報の入力画面が表示されます。

 コンテナイメージ項目にdockerイメージ名、環境変数にrootユーザーの設定を入力します。

 今回はDBデータを永続化させるために、外部ディスクに保存させます。

 そのために外部ディスクの作成の設定を行ないます。

 先ほどのコンテナ情報の入力画面のボリュームのマウントの項目で、コンテナに作成した外部ディスクをマウント設定します。

 ファイアウォール設定のために、ネットワークタグを設定します。

 これで「作成」ボタンを押してインスタンスを作成すれば終わりです。

ファイアウォール作成

 外部からMongoDBへアクセスするために、先ほど設定したネットワークタグでデフォルトの27017ポートを開けます。

アクセス確認

 あとはアクセスをするだけです。


$ mongosh "mongodb://xxx.xxx.xxx.xxx:27017" -u root -p example
Current Mongosh Log ID:	xxxxxxxxxxxx
Connecting to:		mongodb://xxx.xxx.xxx.xxx:27017/?directConnection=true
Using MongoDB:		5.0.2
Using Mongosh:		1.0.6
・・・

gcloudコマンドでの作成

 gcloudコマンドで作成する場合はもっと素早く環境を作ることができます。


$ gcloud compute instances create-with-container mongo \
--machine-type=e2-medium \
--boot-disk-size=10GB \
--container-image=mongo \
--container-env=MONGO_INITDB_ROOT_USERNAME=root,MONGO_INITDB_ROOT_PASSWORD=example \
--container-mount-disk=name=mongo-disk,mount-path=/data/db,mode=rw \
--disk=name=mongo-disk,mode=rw,device-name=mongo-disk,auto-delete=false \
--tags=mongo

$ gcloud compute firewall-rules create mongo-fw \
--source-tags="mongo" \
--source-ranges="xxx.xxx.xxx.xxx/32" \
-allow=tcp:27017

■関連サイト

過去記事アーカイブ

2021年
03月
04月
05月
06月
07月
08月
09月
10月
2020年
04月
05月
08月
09月
10月
11月
12月
2018年
09月
2017年
06月
2014年
07月