Wordpressを先にやったほうが簡単かもしれない
Dockerでやると何が楽か?
・コマンド1つ実行するだけで、仮想マシンの自動起動と、Dockerデーモンのプロビジョニングを行います。
・複数の環境でもコマンドで管理できる。
Docker on AWS
Amazon Web Service 上で、docker Machineを作ってみよう。
先に準備しておこう > IAM作成とキーの取得
amazonec2-access-key、amazonec2-secret-key、などを取得します。
docker-machine
Docker環境が動作するサーバ環境を「docker-machine」コマンドで作成します
EC2上であれば、Docker環境を準備しなくても[docker-machine]コマンドを実行すると、
自動的にDockerが入ったインスタンスを起動してくれます。
docker-machine create
--driver amazonec2
--amazonec2-access-key AKI*******
--amazonec2-secret-key 8T93C*********
--amazonec2-vpc-id vpc-****** aws01
--amazonec2-zone b
{作成するインスタンス名}
なんで、以下のようなコマンドで作成してみます
docker-machine create
--driver amazonec2
--amazonec2-access-key AXXXXX
--amazonec2-secret-key fXXXXX
--amazonec2-vpc-id vpc-XXXXXXX
--amazonec2-zone b
docker-bohebohe
できたか確認してみる
% docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
default - virtualbox Stopped
docker-bohebohe - amazonec2 Running tcp://54.1XX.XX.XX:2376
sshで接続
% docker-machine ssh docker-bohebohe [14:18:47]
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-53-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Mon Dec 7 05:16:14 UTC 2015
System load: 0.54 Processes: 107
Usage of /: 9.2% of 15.61GB Users logged in: 0
Memory usage: 12% IP address for eth0: 172.31.48.19
Swap usage: 0% IP address for docker0: 172.17.0.1
Graph this data and manage this system at:
https://landscape.canonical.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
*** System restart required ***
ubuntu@docker-bohebohe:~$
ec2に接続するために、sshのキーペアの設定をしなくても接続できるので楽チン。
作成したDockerマシンの環境変数の設定を行う
つぎに、docker-composerで、環境を作成するわけですが、どこのdockerに実行するのかわからないですよね。なので、環境変数で設定してあげることが大事です。
env コマンドを実行すると環境変数を export する文が表示される
$ docker-machine env docker-bohebohe
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://XXX.XXX.XXX.XXX:2376"
export DOCKER_CERT_PATH="/Users/ashibuya/.docker/machine/machines/docker-2"
export DOCKER_MACHINE_NAME="docker-2"
上記を環境変数にセットしない場合は以下のコマンドを実行する
Run this command to configure your shell:
eval "$(docker-machine env docker-2)"
docker-compose
docker-composeは複数のコンテナやアプリケーションを構築・管理するためのコマンドラインツールです。
以下の2つのファイルを使って、環境構築ができます。
Dockerfile
docker-compose.yml
複数のクラスタを作成してみよう
さて、上記の作業が終わったら、実際にWordpressの環境を構築してみましょう。
よく例にだされているWordPress環境を構築するためのファイルを作成します。
内容については、こちらの公式サイトで確認してから作成して
Quickstart Guide: Compose and WordPress
https://docs.docker.com/compose/wordpress/
docker-compose up
で実行できます。
コンテナ操作をコマンドラインから実行する
プロセス
- バックエンドで起動する
docker-compose up -d
Starting wp_db_1
Starting wp_web_1
- コンテナのプロセスを確認する
docker ps [16:45:51]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
52c6716f135e wp_web "php -S 0.0.0.0:8000 " About an hour ago Up About an hour 0.0.0.0:8000->8000/tcp wp_web_1
8d109d3738dd orchardup/mysql "/usr/local/bin/run" About an hour ago Up About an hour 3306/tcp wp_db_1
OK ~/Docker/wp
コンテナの中にログインする
docker exec -it wp_web_1 /bin/bash
root@52c6716f135e:/# ls
内容を削除したい場合
- コンテナをストップさせる
docker-compose stop [16:53:22]
Stopping wp_web_1 ... done
Stopping wp_db_1 ... done
OK ~/Docker/wp
- 対象となるコンテナを削除する
すべて消す場合
docker-compose rm
単体で消す場合
docker rm wp_web_1 [16:53:43]
wp_web_1
OK ~/Docker/wp
- 対象となるイメージも削除する
docker images [16:54:14]
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
wp_web latest e1c39e6fc952 About an hour ago 349.7 MB
orchardup/mysql latest ab3b99429ab1 15 months ago 292.4 MB
<none> <none> baa319719d3f 16 months ago 103.9 MB
orchardup/php5 latest c385b8a81cee 17 months ago 330.1 MB
docker rmi wp_web [16:54:23]
Untagged: wp_web:latest
Deleted: e1c39e6fc95256e962cb724a16130d4a9c1319a550a4a434dae4bd50fb2a92b4
docker images [16:54:52]
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
orchardup/mysql latest ab3b99429ab1 15 months ago 292.4 MB
<none> <none> baa319719d3f 16 months ago 103.9 MB
orchardup/php5 latest c385b8a81cee 17 months ago 330.1 MB
- もう一度起動する
docker-compose up -d
Starting wp_db_1
Building web
Step 1 : FROM orchardup/php5
---> c385b8a81cee
Step 2 : ADD . /code
---> ed228b1c2274
Removing intermediate container 4a181521b732
Successfully built ed228b1c2274
Creating wp_web_1
ログを確認する
docker-compose logs
各コンテナのログを確認したい場合
docker XXXXX logs
どうしてもdockerのイメージが消えてくれない場合
docker ps -a -q | xargs docker rm
で、再度、docker images
で表示されてきたイメージを消す
docker rmi <ID>
きれいになくなりました。