はじめに
同じパソコンを複数人で似たような開発環境を使いたいとき、オーバーヘッドが少ないDockerなどを使うのが便利そうなので、Dockerを導入してみました。 QuickStart:Wordpressを参考に進めていきたいと思います。
まずは、Docker周りの諸々をインストールしたいと思います。
インストール編
brewを使って、インストールしてみたいとおもいます。
$ brew install docker $ brew install docker-compose
すると、brewが空気を読んでくれるので、 関連するdocker-machine、boot2dokcerもインストールしてくれます。
$ brew search docker boot2docker ✔ docker-compose ✔ docker-machine-driver-xhyve docker ✔ docker-gen docker-machine-parallels docker-cloud docker-machine ✔ docker-swarm
クイックスタート
QuickStart:Wordpressをやりました。
起動編
さて、準備が整ったので、docker-compose.ymlのあるディレクトリで$ docker-compose up
すると、以下のエラーが返ってきました。
$ dokcer-compose up ERROR: In file './docker-compose.yml' service 'version' doesn't have any configuration options. All top level keys in your docker-compose.yml must map to a dictionary of configuration options.
要約すると、「docker-compose.ymlにversionなんて文法ないぜ」と言っています。
これは、最近docker-composeの文法が変わったからですね。
つまり、さっきbrewでインストールしたdocker-composeのバージョンが古いということですね。
$ docker-compose -v docker-compose version 1.5.2, build unknown $ brew update && brew upgrade docker-compose (略) $ docker-compose -v docker-compose version 1.6.2, build unknown
これで準備が整ったと思い、dokcer-compose up
してみると、以下のエラーが出ました。
$ dokcer-compose up ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
要約すると、「dokcer-machineを起動してね」と言っています。
たしかにdokcerのホストを立てるのを忘れていました。エラーにコマンドが書いてあったので、コピペすると
$ docker-machine start default Host does not exist: "default"
「defaultなんてないよ」と返ってきました。
たしかに作っていません。。。
調べると、以下のコマンドでvirtualbox上に立てることができるようです。
$ docker-machine create --driver virtualbox default (略) Checking connection to Docker... Docker is up and running! To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default
できましたね。
ここで安易にdocker-compose up
をしてみました。
$ docker-compose up ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
「docker-machine立ててね」と返ってきました。
あれ?dokcer-machine create なんとか
のコマンドを失敗したかな、と思い、見返してみると、メッセージの最後にdocker-machine env default
しなさいと書いてありました。
$ docker-machine env default export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.xxx.xxx:xxxx" export DOCKER_CERT_PATH="/Users/username/.docker/machine/machines/default" export DOCKER_MACHINE_NAME="default" # Run this command to configure your shell: # eval $(docker-machine env default)
なるほど、環境変数がないとdefaultってなんだってなりますね。 出力されたコマンドをコピペして実行します。
最後に、dokcer-compose up
してみます。
$ docker-compose up Creating network "wordpress_default" with the default driver Pulling db (orchardup/mysql:latest)... latest: Pulling from orchardup/mysql a3ed95caeb02: Pull complete ca6bba82817b: Pull complete 4dd65252e0f1: Pull complete be0b1884448e: Pull complete ec7f480149bd: Pull complete 4d47b129db1b: Pull complete 509d49bb800b: Pull complete db95baf50f96: Pull complete 4b5f0bbad8d8: Pull complete Digest: sha256:d5abef23d5afc4f46ee9e886ca0482d08dbfee4f060c85ce3fb23b975a1457c6 Status: Downloaded newer image for orchardup/mysql:latest Creating wordpress_db_1 Building web Step 1 : FROM orchardup/php5 latest: Pulling from orchardup/php5 a3ed95caeb02: Already exists 0d8710fc57fd: Pull complete 50a5d0820b57: Pull complete 6e2b87398c21: Pull complete fc75ac9e2d34: Pull complete 6d7627f26e84: Pull complete Digest: sha256:166c2488a7cd60dc02f0cfcb0b606db38ff251f36cb5b10e8b837d9619c41036 Status: Downloaded newer image for orchardup/php5:latest ---> d8e939bb8720 Step 2 : ADD ./code /code ---> 700d3ce694a4 Removing intermediate container e3bfb9872fe0 Successfully built 700d3ce694a4 Creating wordpress_web_1 Attaching to wordpress_db_1, wordpress_web_1
成功ですね!
まとめ
dockerのツールたちは、エラーメッセージが優しいですね。 躓いても、次の手がすぐ打てます。