Docker ToolboxでMac OSXにDocker環境を最速で構築する
モチベーション
最速でMacOSXのDocker環境を構築する。
Docker Toolboxとは?
Docker ToolboxとはDocker社が公式で提供しているWindowsやMacなどのPCでDocker環境を簡単に構築するパッケージのこと。手元のPCで試しにDockerを動かしてみたいときはとりあえずこれを入れれば良い。
Docker Toolboxが含むDockerツール群
Docker Toolboxでは以下のツールがインストールされる。
ツール名称 | 役割 |
---|---|
Docker Client | WindowsやMacからdocker コマンドを実行できるようにする |
Docker Machine | Docker Engineが動くホストをローカルやリモートに構築する (旧boot2docker) |
Docker Compose | 複数のコンテナをYAMLで管理する |
Docker Kitematic | GUIでコンテナを管理する。VM管理におけるVirtualboxのような位置づけ |
VirtualBox | Dockerを動かすVMの構築をする |
これらのツールは下図のような相関になる。
(参考:http://devcenter.magellanic-clouds.com/learning/docker-toolbox.html)
Docker Toolboxのインストール
それではDocker Toolboxをインストールする。公式のDocker ToolboxからMac OSX用のイメージをダウンロードする。ダウンロードしたDockerToolbox-X.Y.Z.pkg
(X,Y,Zはバージョンを表す数字) を実行すると、インストレーションガイドが始まる。
これに従いDocker Toolboxをインストールする。
Docker Toolboxのダウンロードからここまで10分。
Kitematicを使ってみる
コンテナをGUIで管理できるKitematicを使ってみる。spotlightでkitematicを検索実行する。
初回実行時は以下のような画面が表示されDocker MachineでVirtualbox上にDockerホストを構築する。
VMの構築が終わるとDocker Hubへの連係画面が出て来るが、今回は連係しないで使うため、SKIP FOR NOWをクリックする。
KitematicのGUIが表示されコンテナの操作が可能になる。Docker Hubのパブリックなコンテナイメージを使ってもコンテナを作れるみたいなので、今回はhello-world-nginx
コンテナを作ってみる。CREATEをクリックする。
CREATEをクリックしてからものの10秒くらいでコンテナが起動する。nginxで表示されるindex.html
を確認するためにWEB PREVIEWのボタンをクリックする。
すると、nginxのコンテナが起動しているというメッセージがブラウザで表示される。
また、EXECボタンを押すことでコンテナ内のshellに接続できる。
コンテナ版のVirtualboxだ。
Docker Quickstart Terminalを使ってみる
今度はCUIでDockerを操作する。spotlightでDocker Quickstart Terminalを検索して実行する。すると、ターミナルが自動で開き、192.168.99.100のVM上でDockerホストが構築されたというメッセージが表示される。
➤ bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh' Machine default already exists in VirtualBox. Setting environment variables for machine default... ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com
そのまま、Dockerコンテナを構築するコマンドを実行する。すると、PC上にコンテナイメージがない場合はDocker Hubから取得後、コンテナが構築される。
➤ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world b901d36b6f2f: Pull complete 0a6ba66e537a: Pull complete Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7 Status: Downloaded newer image for hello-world:latest Hello from Docker. This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker Hub account: https://hub.docker.com For more examples and ideas, visit: https://docs.docker.com/userguide/
構築したコンテナのIDを調べる。
➤ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bf9a641aa50b hello-world "/hello" 6 minutes ago Exited (0) 6 minutes ago silly_hopper
構築したコンテナを削除するには以下を実行する。
➤ docker rm bf9a641aa50b bf9a641aa50b ➤ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
これでDocker環境がMacに導入された。
おまけ:Docker Toolboxのアンインストール
2015.11.23現在はDocker Toolboxのインストーラにアンインストール機能は無いようだ。Github上のDocker Toolboxのレポジトリを見ると、アンインストール用のスクリプトが用意されているがVirtualboxのインストールはされないみたい。