---
title: "GCE上でDockerコンテナを動かす | grasys blog"
url: "https://blog.grasys.io/post/matsubara/gce/"
description: "こんにちは松原です。 Dockerイメージを使用して楽に構築を行いたいが、Docker ComposeやKubernetesを使用する程でもなく、単一のコンテナ運用を行いたいといったケースがあると思います。 GCPではGCE上で単一のコンテナ運用を簡単に行うことができます。 GCPにはコンテナ用に最適化されたOS「C…"
---

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

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[matsubara](/authors/matsubara/)
-   公開日：2021年9月21日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#Container](/tags/container/)[#Compute Engine](/tags/compute-engine/)[#Google Cloud](/tags/google-cloud/)

![GCE上でDockerコンテナを動かす](/_astro/og-image.DDSiu2Ny_XHpDd.webp)

こんにちは松原です。

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

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

GCPにはコンテナ用に最適化されたOS「Container-Optimized OS」があります。  
このOSはGKEの各ノードでも使用されるOSになります。

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

## インスタンス作成

GCP Consoleからインスタンスの作成を行なっていきます。  
「このVMインスタンスにコンテナイメージをデプロイします。」を選択することにより、コンテナ情報の入力画面が表示されます。  
コンテナイメージ項目にdockerイメージ名、環境変数にrootユーザーの設定を入力します。

![インスタンス作成の画面（1）](/_astro/01-09-1-1024x572-199ac4e5.DDKFPBvb_Z2v3leJ.webp)

今回はDBデータを永続化させるために、外部ディスクに保存させます。  
そのために外部ディスクの作成の設定を行います。

![インスタンス作成の画面（2）](/_astro/02-10-1-1024x557-7ff0a8ab.Df8Q6-9c_1x7aua.webp)

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

![インスタンス作成の画面（3）](/_astro/03-11-1-1024x562-1b1a9847.BxX7Kqfx_1D6KWC.webp)

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

![インスタンス作成の画面（4）](/_astro/04-12-1-1024x551-44b4ca0c.D0gFi_ke_mYuug.webp)

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

## ファイアウォール作成

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

![ファイアウォール作成の画面](/_astro/05-13-1-1024x566-a3ee794e.BZWEaOrj_1kyTnc.webp)

## アクセス確認

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

Plain textcontent\_copy

```
$ 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コマンドで作成する場合はもっと素早く環境を作ることができます。

Plain textcontent\_copy

```
$ 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
```

## この記事を書いた人

[![](/_astro/matsubara.B6oqBkIq_hrBOG.webp)](/authors/matsubara/)

### [matsubara](/authors/matsubara/)

matsubaraのプロフィールと執筆記事をご覧いただけます。

[プロフィールと記事一覧](/authors/matsubara/)
