[Docker]docker-composeを使ってみる

By | 2018年2月25日

はじめに

土日は結構遊んでしまったので、今から少しだけdocker-composeに触れていきます。
とはいえ実は大学院時代の授業でdockerとdocker-composeは実際に使っていたんですね!
だからうっすらと覚えてはいます。
それとは別に、時間があまりなかったので今回は雑なまとめ方です。

Docker準備・インストール編
Docker使ってみる編

 

参考サイト様

今回参考にさせていただいたサイトはこちら
docker-composeの中身もとりあえずここで紹介されているものを使用しています。
※ポートだけ80に指定しなおしてますがそれ以外は同じです。

 

docker-composeとは

Dockerを使ってサービスを立ち上げる場合には、サービスごとにコンテナを立ち上げてそれらを連携させたりする必要があります。docker-composeを使用すれば、こういったコンテナの立ち上げと連携させる処理を自動的に行ってくれます。
Dockerでサービスを立ち上げる上で便利なツールということですね!

 

色々準備

今回もEC2インスタンス上で作業を行います。
sshでAmazonLinuxへ接続を確立させて、実際にdocker-composeを試してみることにします。

動作確認用のファイルでごっちゃにならないように作業ファイルを作成します。
今回はユーザーのディレクトリの直下に/docker/compose-testという作業ディレクトリを作成しました。
$ mkdir docker/compose-test
そしたら参考サイト様にあるようなdocker-compose.ymlファイルを作成します。
docker-compose.ymlはサービスの立ち上げを行うための設計図みたいなものだと解釈してます。

なお、今回は参考サイト様にあるdocker-compose.ymlのport8000:80の項目を80:80にしてます。
これは単純にEC2側のセキュリティグループの設定で8000ポートを開放してないことと、ドメインを入力して直接WordPressのページを開きたかったためですね。

 

コンテナの立ち上げ

docker-compose.ymlがおいてあるディレクトリ内で、下記のコマンドを実行するとサービスを立ち上げます。

# docker-composeからコンテナの立ち上げ。-dオプションでバックグラウンド起動
$ docker-compose up -d


これで実行できるはずなのですが、ポート80番が既に使われているよと怒られてしまいました。
そういえば以前にインスタンスを立ち上げたら自動的にApacheが立ち上がるように設定していましたね。

 

ということでhttpdをstopさせます。
ちょっとコマンドをど忘れしてしまい、historyから探したのは内緒です。

 

ということで今度こそコンテナが立ち上がりました。

 

docker psコマンドでもコンテナが立ち上がっていることが確認できます。

 

ブラウザからEC2インスタンスへアクセスしてみて、WordPressが立ち上がることも確認できました。
今回はポート80でしたが、ポートを80以外に設定した場合にはセキュリティグループの設定が必要になるかと思われます。

 

コンテナの停止と削除

コンテナの停止と削除を行うには下記のコマンドを実行します。

# コンテナを停止
$ docker-compose stop

# 停止しているコンテナを削除
$ docker-compose rm

コンテナの動作を停止させずに削除を実行しようとすると、stopしているコンテナが無いため怒られてしまいます。

 

ということで無事にコンテナの削除までできました。

 

おわりに

今回は人様のところで書かれていたdocker-compose.ymlを引っ張ってきて実行しただけです。
実際に使用するときには必要に応じてdocker-composeを編集する必要があると思います。
とりあえず、Dockerについては大まかな全体像には触れられたと思います。
次回からは本題であるAWSにもどって、ECS上でサービスを立ち上げてみたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)