【Docker入門】Docker MachineでGoogle Compute Engine上に環境構築

docker

こんにちは!システムエンジニアのオオイシ(makoto.oishi.0705)です。

Docker Machineは、AWSやGCPなどのクラウド環境などにDockerの実行環境を構築するコマンドラインツールです。

Docker Machineを使うと、

  • ローカル開発環境で構築したDockerイメージをクラウド上にデプロイできる!
  • 複数のDocker実行環境を手軽に作成して耐障害性をあげたい
  • いますぐに拡張したい!

などがとってもカンタンに実現できます。

Docker Machineとは

Docker Machineとは、オンプレミス環境、GCEやAWSなどのクラウドや仮想環境上にDockerの実行環境を作成するコマンドラインツールです。

Docker Machineの実行環境は、

など、主要な環境でDocker Machineを構築できます。

そのため、MacOS Xなどのローカル環境で構築したDockerは、環境を気にせずデプロイ可能です。

Docker MachineをGoogle Compute Engine上に構築してみよう

今回は、Docker Machine を Google Compute Engine(※以下GCE)上に構築して、Apache Web Serverを実行する方法を紹介していきます。

Cloud SDKのインストール

GCE上にDocker Machineを構築するためには、Cloud SDKをDocker Machineのコマンドラインインストールする必要があります。

あらかじめ、GCPのアカウントを取得して、GCPプロジェジェクトを作成してください。

Cloud SDKとは、コマンドラインでGCEやCloud SQLなどのインスタンスを操作するための、コマンドラインツールです。

インストールについては、公式ドキュメントのこちらを参照してください。

GCEでDockerの実行環境を作成

Docker Machineを使って、GCE上にDockerの実行環境を構築します。

今回はd-m-sample1というプロジェクトにDocker実行環境を作成します。

  • docker-machine create -d <ドライバー名>

GCPのプロジェクトIDを設定:

Docker実行環境をGCEに作成:

実行結果:

GCPコンソールのGCE VMインスタンスを確認すると、このように、インスタンスが作成されたことが確認できます。

GCEのイメージのURLを知るためには、次のコマンドで簡単に取得できます。

GCEのイメージのURLを調べるコマンド

gcloud compute images list --filter=centos --uri

Dockerの実行環境を確認

GCEコンソール上から作成したインスタンスは確認できましたが、Docker Machineのコンソール上から実行環境を確認することができます。

  • $ docker-machine ls

実行例:

このように、ローカルのコマンドライン上からDockerの実行環境を確認することができました。

Docker実行環境へのアクセス方法

ローカル環境からDocker Machineへアクセスするためには次のコマンドを実行します。

  • docker-machine ssh <Docker Machine名>

実行例:

プロンプトがdocker-user@マシン名に変わったことが確認できたでしょうか!?

GCE上のDockerでApacheを実行してみる

GCE上のDocker MachinenへApache Web Serverをインストールしてみましょう。

手順はローカル開発環境で実行する方法と変わりはありません。

外部IPをクリックしてブラウザでアクセスすると、Apacheが実行されたことが確認できます。

今回は、Dockerコンテナを直接実行しましたが、自前で作成したDockerイメージやDocker Composeなどを使って、自由に構築することができます。

もちろん、ローカル環境でもクラウド上でも環境に左右されることなく実行が可能です。

Docker Machineの削除

作成したDocker Machineはコマンドライン上から削除できます。

サンプルで確認したGCEのVMインスタンスも含めて削除してみましょう。

  • docker-machine rm <Docker Machine名>

Docker Machineの基本コマンド

Docker Machineのサブコマンドを一覧でまとめておきます。

  • docker-machine <サブコマンド>
サブコマンド 説明
create 実行環境の作成
ls 実行環境の一覧
status 実行環境のステータス
start 実行環境を起動
stop 実行環境を停止
restart 実行環境を再起動
ssh 実行環境にssh接続
scp 実行環境からファイルの送受信

まとめ

いかがでしたか。

今回は、Docker MachineでGCE上にDockerの実行環境を構築する手順について解説しました。

docker-machineコマンドを使うと、オンプレミス環境でもクラウドでも仮想環境でもどこでもDockerを実行することが可能です。

Docker Machineを使うとローカル開発環境で作成したDockerをどこでも実行できるのでぜひ試してみてくださいね。