Mac に Docker インストールしてみた

Docker + Docker Machine のインストー

まずは、Docker 本体と Docker Machine をインストールします。

Mac だと Docker を直接的に実行できないのですが、Docker Machine を使用すると、一旦VM上で CoreOS や boot2docker を実行して、その上で簡単に Docker を実行できるようになります。

インストール自体はどちらも Homebrew で簡単にインストールすることができます。

$ brew install docker docker-machine

Machine の作成

docker-machine コマンドで新しく Machine を作成します。

$ docker-machine create -d virtualbox dev-machine
・・・(省略)
Setting Docker configuration on the remote daemon...
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 dev-machine

上記の dev-machine の部分は Machine の名前になるので、好きな名前をつけてかまいません。

出力の最終行にVM上の Docker Machine に接続するために docker-machine env dev-machine を実行してくださいと書かれているので、これを実行します。

$ docker-machine env dev-machine
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/path/to/.docker/machine/machines/dev-machine"
export DOCKER_MACHINE_NAME="dev-machine"
# Run this command to configure your shell:
# eval $(docker-machine env dev-machine)

docker-machine env dev-machine を実行すると、環境によって多少異なりますが、このようなかたちで色々表示されるかと思います。

これは要するに最終行の eval $(docker-machine env dev-machine) というコマンドを実行すると、Docker に接続するための環境変数が設定されるということです。

それでは、早速コマンドを実行してみましょう。

$ eval $(docker-machine env dev-machine)

特に何も出力されませんが、これで Docker Machine に接続できるようになりました。

Docker Machine に接続する

Docker Machine に接続してみます。

$ docker-machine ssh dev-machine
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.10.3, build master : 625117e - Thu Mar 10 22:09:02 UTC 2016
Docker version 1.10.3, build 20f81dd

Docker Machine に接続することができたので、docker pull コマンドを実行して、Ubuntu のイメージを取得します。

$ docker pull ubuntu:latest
latest: Pulling from library/ubuntu
203137e8afd5: Pull complete
2ff1bbbe9310: Pull complete
933ae2486129: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:1bea66e185d3464fec1abda32ffaf2a11de69833cfcf81bd2b9a5be147776814
Status: Downloaded newer image for ubuntu:latest

docker images コマンドを実行すると Docker Machine 内のイメージ一覧が見れるので、先ほど取得した Ubuntu のイメージがきちんと表示されるか確認してみましょう。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              97434d46f197        3 days ago          188 MB

問題なく Ubuntu のイメージが取得できたのが確認できました。

Mac から Docker コマンド実行

ここまでは Docker Machine 内で docker コマンドを実行していたので、exit 等して Mac に戻りましょう。

少し前に eval $(docker-machine env dev-machine) を実行しましたが、これを実行していれば Mac からも docker コマンドが実行できるので、Docker Machine 内のイメージ一覧を表示させて、docker コマンドがきちんと実行できるか確認します。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              97434d46f197        3 days ago          188 MB

Mac からも docker コマンドが実行できました!

まとめ

これで Mac に docker の環境を整えることができました。

ですが、このままでは docker をどのように使うのかイメージがつきづらいと思いますので、次回以降で PHP の開発環境を実際に構築していきたいと思います。