前回から Docker を触り始めました。
今回は、「Docker Compose」を調べつつ触ります。
目次
参考資料
後々追加されますが、入口はこの資料から。
今回はDocker-docs-ja Docker Composeを主に参考にして、最終的に Docker Compose を使用した Wordpress 環境の立ち上げをしてみたいと思います。
Docker Compose 導入
mac 環境では、docker 導入によって使用可能になっていた。
Qiita Docker を Mac にインストールするを参考参考にして、docker の導入をしたので、この通りでよいと思う。
インストール確認
1 | docker-compose --version |
コマンド
Docker Compose のコマンド群は、docker-Compose
から始まる。docker-Compose --help
でオプションを見ることができる。
とりあえず今回は以下しか使わなかった。
Docker Compose でアプリケーションを起動
docker-compose.yml
の内容に基づいて各コンテナを起動
1 | docker-compose up |
コンテナ群の実行状況
1 | docker-compose ps |
docker container ls
(docker ps
)とは表示が異なる。
Docker Compose でアプリケーションを再起動
docker-compose.yml
の内容に基づいて各コンテナを再起動
1 | docker-compose restart |
Docker Compose でアプリケーションを停止
docker-compose.yml
の内容に基づいて各コンテナを停止
1 | docker-compose down |
Docker Compose を使ってみる。
docker-compose.yml
すごく難しいのですこれが…。
とりあえず、こういう時はシンプルに見よう見まねで 1 つだけサーバを立ててみます。
(オーケストレーションツールが泣くかな・・・。)
docker-compose.yml でコンテナを作成 一つだけ
以下のdocker-compose.yml
を作成してみる。
1 | version: "3" |
docker-compose.yml
を作成したので、コンテナを作ってアクセスしてみる。
1 | # コンテナ群(ここでは1つ)を起動 |
できた。
Welcome to nginx!の表示を確認できる。
docker-compose.yml でコンテナを作成 二つそして build してみる
今度は、コンテナを 2 つを別の dokerfile でビルドされたイメージから作ってみたいと思います。
以下のディレクトリ・ファイル構成です。
1 | --compose2 |
dockerfile はそれぞれとも同じ内容ですが、
index.html の内容は server1 と server2 のそれぞれ変えておきます。
1 | version: '3' |
アプリケーションを起動して、localhost:5000 と localhost:5001 にアクセスすると、それぞれの index.html を確認できた。
Wordpress 環境を作ってみる
Docker-docs-ja クイックスタート・ガイド:Docker Compose と Wordpressを参考に作ってみる。
一旦以下のサンプルそのまま入れてみる。
1 | version: "2" |
こちらで、docker-compose up -d
で起動してみる。
失敗した。
localhost:8000 にアクセスすると、Error establishing a database connection
と表示されるなぜなのかと、以下を調べてみる。
Docker-docs-ja クイックスタート・ガイド:Docker Compose と Wordpressのdocker-compose.yml
とは結構違っている・・・。(日付古かったしな・・・。)
これらの資料を参考にdocker-compose.yml
を以下のように書き換えてみる。
1 | version: "3" |
もう一度docker-compose up -d
をするが、
うまくいかない。
気になって./.data/db
を一旦すべて削除。docker-compose up -d
し、localhost:8000 にアクセス。
成功!
wordpress の初期設定画面が開きました。
一旦docker-compose down
で停止し、再度docker-compose up -d
を実行し、再度アクセス。
データベースがホストマシンの./.data/db
に展開さ、wordpress の初期設定が表示されないこと確認。
ここで、もう一度docker-compose down
し、./.data/db
を削除。docker-compose up -d
でコンテナ群を起動。
localhost:8000 にアクセスすると初期設定が表示、./.data/db
にデータが展開されていることを確認できた。
今回は、サンプルを参考に docker Compose を使って Wordpress 環境立ち上げまでやってみた。
ここまでで、「docker って便利だな」とか「今更かよ!」な感想を持ってしまったりしている。
docker hubに MQTT サーバーのeclipse-mosquittoの docker イメージを見つけたりしたので、IoT 的にも使いようがありそうだなと思う。(mosca で拡張するのも、もうつらいなって)
こういうのものを使いこなして開発の本業の人たちは、本来作りたいアプリケーションだったり、サービスのコアになるべく早く着手しているんだろうなと理解。
ではでは。