Docker Toolbox の使い方

Docker Toolbox は、Docker 環境を簡単に構築するためのインストーラです。現在、OS X (Mac) と Windows 用に提供されています。

Docker は、Linux 上で動作するため、OS X (Mac) や Windows では、Docker が動作する Linux 仮想マシンを準備し、それを利用する形態をとります。

Docker 利用イメージの画像

Docker Toolbox は、この Docker 環境を構築・運用するためのアプリケーションやツールをセットにして提供します。

Docker Toolbox のセット内容は、次のとおりです。

ツール 概要
Docker Client Docker を操作するツール(docker コマンド)。
Docker Machine Docker 仮想マシンを簡単に構築・管理するためのツール(docker-machine コマンド)。
Docker Compose マルチコンテナ・アプリケーション(複数のコンテナで構成するシステム)を定義・実行するためのツール(docker-compose コマンド)。現在は、OS X (Mac) のみ。
Docker Kitematic Docker を GUI で操作するツール。現在は、β版。
Docker Quickstart Terminal docker コマンドが即利用できるターミナル(Docker 仮想マシンを準備してくれる)。
VirtualBox 5.0 PC の仮想化アプリケーション。

tips用アイコン

Docker 1.7 までは、Boot2Docker というツールが提供されていました。Docker 1.8 からは、Docker Toolbox に置き換わりました。Boot2Docker の利用は推奨されていません。

前提 OS

Docker Toolbox が前提とする OS とそのバージョンは次の通りです。

OS 前提バージョン
OS X (Mac) OS X Mountain Lion 10.8 以降
Windows Windows 7.1、Windows 8 / 8.1、Windows 10

インストール(OS X 編)

次の手順で、Docker Toolbox をインストールします。

  1. Docker Toolbox から [Download (Mac)] ボタンをクリックして、インストーラをダウンロードします。

    OS X 用インストーラファイルの画像

    (ファイル名は、2015/09/11 時点のものです。実際は、異なる可能性があります。)

  2. ダウンロードした OS X 用インストーラファイル画像 をダブルクリックします。

    インストーラが起動します。

    インストーラ起動画面の画像

    tips用アイコン

    Boot2Docker VM が起動していると、下図の画面が表示されます。閉じるボタン画像 をクリックすると、インストーラが終了します。

    ターミナルで、boot2docker stop を実行して Boot2Docker VM を停止させた後で、再度インストーラを起動してください。

    インストーラ起動画面の画像

  3. 続けるボタン画像 をクリックします。

    インストーラはじめに画面の画像

    (図中のバージョンは、2015/09/11 時点のものです。実際は、異なる可能性があります。)

  4. 続けるボタン画像 をクリックします。

    インストーラ インストールの種類画面の画像

  5. インストール中の診断データを送信するかどうかのチェックボックスがオンになっています。送信したくない場合は、チェックを外してください。その後、続けるボタン画像 をクリックします。

    インストーラ インストールの種類画面の画像

  6. ディスクが 1 つのみ表示されているときは、そのまま 続けるボタン画像 をクリックします(ディスクが複数表示されているときは、Docker Toolbox をインストールするディスクを選択してから、続けるボタン画像 をクリックします)。

    インストーラ インストールの種類画面の画像

    tips用アイコン

    カスタマイズボタンの画像 をクリックすると、インストールするツールを選択できます。通常は、カスタマイズする必要はありません。

    インストーラ カスタマイズ画面の画像

    • Docker Client、Docker Machine、Docker Compose は、それぞれ、docker、docker-machine、docker-compose というコマンド名で、/usr/local/bin にインストールされます。
    • Docker Quickstart Terminal と Kitematic のアプリケーションは、アプリケーションフォルダ内の Docker フォルダにインストールされます。
    • VirtualBox は、アプリケーションフォルダにインストールされます。
  7. install ボタンの画像 をクリックします。

    インストーラ カスタマイズ画面の画像

    tips用アイコン

    ユーザ名は、OS X にログインしているユーザの名称が表示されます(MAGELLAN は、表示例です)。

    ユーザ名は、変更せずそのまま次のステップへ進んでください。

  8. パスワードを入力します。

    インストーラ カスタマイズ画面の画像

  9. ソフトウェアをインストールボタンの画像 をクリックします。

    インストールが始まります。

    インストーラ カスタマイズ画面の画像

  10. Boot2Docker の仮想マシン(VM)がインストールされている場合、それを Docker Toolbox 用にマイグレーションするか尋ねてきます。

    インストーラ カスタマイズ画面の画像

  11. マイグレーションする場合は、チェックボックスをオンに、マイグレーションしない場合は、チェックボックスをオフにします。続けるボタン画像 をクリックします。

    インストーラ カスタマイズ画面の画像

  12. インストール(および Boot2Docker VM のマイグレーション)が完了すると、Quick Start の画面が表示されます。

    インストーラ カスタマイズ画面の画像

  13. ここで、Docker 仮想マシンを準備します。

    Docker は、Linux 上で動作するため、OS X (Mac) や Windows では、Docker が動作する Linux 仮想マシン(以降、単にマシンと呼びます)を準備し、それを利用する形態をとります。

    Docker 利用イメージの画像

    このため、Docker の利用にあたっては、あらかじめマシンを準備する必要があります。「Docker Quickstart Terminal」を利用すると、このマシンの準備をしてくれます。

    少し前置きが長くなりました。「Docker Quickstart Terminal」アイコン(Docker Quickstart Terminal アイコンの画像 )をダブルクリックします。

    tips用アイコン

    iTerm2 がインストールされている場合は、ターミナルを選択する画面が表示されます(Docker Toolbox 1.8.1d 以降)。

    ターミナル選択画面の画像

    • iTerm2 を利用する場合は、iTerm もしくは、iTerm (Always) をクリックします。
    • OS 標準のターミナルを利用する場合は、Terminal もしくは、Terminal (Always) をクリックします。
    • (Always) 付きは、次回以降利用するターミナルを固定化します。例えば、iTerm (Always) を選択すると、次回以降の Docker Quickstart Terminal 実行では、この選択画面は表示されずに、常に iTerm が利用されます。

    ターミナルの選択後、OK ボタン画像 をクリックします。

    ターミナルが開きメッセージが次々と表示されます。しばらく待つと、下図ような画面になります。

    Docker Quickstart Terminal 画面の画像

    この図の例では、docker is configured to use the default machine with IP 192.168.99.100 というメッセージが表示されています。

    これは、「default」という名前のついたマシンが、IP アドレス「192.168.99.100」で、準備できたことを意味します(マシンには名前がつきます)。IP アドレスは、環境によって異なります。

    「Docker Quickstart Terminal」は、必ず「default」という名前でマシンを準備します。

    これで、マシンの準備完了です。以降、このターミナルで docker コマンドが利用可能です。

    試しに、準備されたマシン上で「hello-world」コンテナを起動してみます。docker run hello-world と入力し、return キーを押します。

    $ docker run hello-world
    

    コンテナの起動に成功すると、次のようなメッセージが表示されます。

    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    
    
    535020c3e8ad: Pull complete
    af340544ed62: Already exists
    library/hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
    Digest: sha256:d5fbd996e6562438f7ea5389d7da867fe58e04d581810e230df4cc073271ea52
    Status: Downloaded newer image for hello-world:latest
    
    
    Hello from Docker.
    This message shows that your installation appears to be working correctly.
    
    
    . . . (中略) . . .
    
    
    For more examples and ideas, visit:
     https://docs.docker.com/userguide/
    
  14. インストーラに戻り、続けるボタン画像 をクリックします。

    インストーラ 概要画面の画像

  15. これで、インストール完了です。閉じるボタン画像 をクリックして、インストーラを終了します。

インストール(Windows 編)

次の手順で、Docker Toolbox をインストールします。

  1. Docker Toolbox から [Download (Windows)] ボタンをクリックして、インストーラをダウンロードします。

    Windows 用インストーラファイルの画像

    (ファイル名は、2015/09/01 時点のものです。異なる可能性があります。)

  2. ダウンロードした Windows 用インストーラファイル画像 をダブルクリックします。

    セキュリティの警告画面の画像

    「セキュリティの警告」画面が表示された場合は、実行ボタンの画像 をクリックします。

    ユーザー アカウント制御画面の画像

    さらに、「ユーザー アカウント制御」画面が表示された場合は、はいボタンの画像 をクリックします。

    インストーラが起動します。

    Welcome 画面の画像

  3. インストール中の診断データを送信するかどうかのチェックボックスがオンになっています。送信したくない場合は、チェックを外してください。その後、Next > ボタン画像 をクリックします。

    「Select Destination Location」画面が表示されます。

    Select Destination Location 画面の画像

  4. インストール先を選択します。表示されているインストール先(C:¥Program Files¥Docker Toolbox)のままで良い場合は、Next ボタンの画像 をクリックします。インストール先を変更したい場合は、Browse ボタンの画像 をクリックして、インストール先を選択後に、Next ボタンの画像 をクリックします。

    「Select Components」画面が表示されます。

    Select Components 画面の画像

  5. インストールするコンポーネントを選択後(デフォルトでは、すべてのコンポーネントをインストール)、Next > ボタン画像 をクリックします。

    「Select Additional Tasks」画面が表示されます。

    Select Additional Tasks 画面の画像

  6. 以下の追加タスクを確認後、Next > ボタン画像 をクリックします。

    • デスクトップに、Docker Quickstart Terminal や Kitematic などのデスクトップアイコンを作成する場合は、”Create a desktop icon” のチェックボックスにチェックを付けます。
    • docker.exe および docker-machine.exe へのパスを PATH 環境変数に追加する場合は、”Add docker.exe docker-machine.exe to PATH” のチェックボックスにチェックを付けます。

    「Ready to Intall」画面が表示されます。

    Ready to Install 画面の画像

  7. Install ボタン画像 をクリックします。

    インストールが始まります。

    Installing 画面の画像

    VirtualBox のインストールを選択した場合、次のような画面が表示されることがあります。

    Windows セキュリティ画面の画像

    この場合は、インストールボタン画像 をクリックします。名前の部分が異なる画面が幾つか表示される場合は、すべての画面で、インストールボタン画像 をクリックします。

  8. Boot2Docker の仮想マシン(VM)がインストールされている場合、それを Docker Toolbox 用にマイグレーションするか尋ねてきます。

    マイグレーション問い合わせ画面の画像

    マイグレーションする場合は、はいボタンの画像 をクリックします。マイグレーションしない場合は、いいえボタンの画像 をクリックします。

    はいボタンの画像 をクリックした場合、Boot2Docker VM のマイグレーションが行われます。

    Boot2Docker VM のマイグレーション中画面の画像

    「ユーザー アカウント制御」の画面が表示された場合は、はいボタンの画像 をクリックします。

    ユーザー アカウント制御画面の画像

    同様の画面が、複数回表示された場合は、すべての画面で、はいボタンの画像 をクリックします。

    Boot2Docker VM のマイグレーションに成功すると、次の画面が表示されます。

    Boot2Docker VM のマイグレーション成功画面の画像

    OK ボタンの画像 をクリックします。

  9. インストール(および Boot2Docker VM のマイグレーション)が完了すると、インストール完了画面が表示されます。

    インストール完了画面の画像

    「View Shortcuts in File Explorer」のチェックボックスのチェックが付いた状態で、Finish ボタンの画像 をクリックします。

    エクスプローラが起動し、スタートメニューに登録された Docker Toolbox の各種プログラムアイコンが表示されます。

    インストール完了画面の画像

  10. ここで、Docker 仮想マシンを準備します。

    Docker は、Linux 上で動作するため、OS X (Mac) や Windows では、Docker が動作する Linux 仮想マシン(以降、単にマシンと呼びます)を準備し、それを利用する形態をとります。

    Docker 利用イメージの画像

    このため、Docker の利用にあたっては、あらかじめマシンを準備する必要があります。「Docker Quickstart Terminal」を利用すると、このマシンの準備をしてくれます。

    少し前置きが長くなりました。エクスプローラに表示されている「Docker Quickstart Terminal」をダブルクリックします。

    ターミナルが開きメッセージが次々と表示されます。途中で、「ユーザー アカウント制御」の画面が表示されたら、はいボタンの画像 をクリックします。しばらく待つと、下図ような画面になります。

    Docker Quickstart Terminal 画面の画像

    この図の例では、docker is configured to use the default machine with IP 192.168.99.100 というメッセージが表示されています。

    これは、「default」という名前のついたマシンが、IP アドレス「192.168.99.100」で、準備できたことを意味します(マシンには名前がつきます)。IP アドレスは、環境によって異なります。

    「Docker Quickstart Terminal」は、必ず「default」という名前でマシンを準備します。

    これで、マシンの準備完了です。以降、このターミナルで docker コマンドが利用可能です。

    試しに、準備されたマシン上で「hello-world」コンテナを起動してみます。docker run hello-world と入力し、return キーを押します。

    $ docker run hello-world
    

    コンテナの起動に成功すると、次のようなメッセージが表示されます。

    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    
    
    535020c3e8ad: Pull complete
    af340544ed62: Already exists
    library/hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
    Digest: sha256:d5fbd996e6562438f7ea5389d7da867fe58e04d581810e230df4cc073271ea52
    Status: Downloaded newer image for hello-world:latest
    
    
    Hello from Docker.
    This message shows that your installation appears to be working correctly.
    
    
    . . . (中略) . . .
    
    
    For more examples and ideas, visit:
     https://docs.docker.com/userguide/
    

    これで、インストール完了です。

Docker Machine Quick Start

マシンの準備は、Docker Machine を使うとできます。「Docker Quickstart Terminal」は、内部で Docker Machine を使っています。

Docker Machine の利用は、ターミナルで docker-machine コマンドを使います。以下、Docker Machine を使ったマシンの準備方法を順を追って解説します。

Docker Machine の詳しいことは、「Overview of Docker Machine 」や「Docker Mashine subcommand reference 」などを参照してください。

tips用アイコン

docker コマンドを「Docker Quickstart Terminal」以外のターミナルで使いたい場合は、本 Quick Start に一通り目を通した上で、「マシン接続用環境変数の表示」を参考にしてください。

マシンの作成

新しくマシンを作成する場合は、create サブコマンドを使います。

例えば、VirtualBox 上に dev という名前のマシンを作成する場合は、docker-machine create --driver virtualbox dev とします。

$ docker-machine create --driver virtualbox dev
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev

dev マシンが作成されて、マシンの起動まで行われています。

マシン一覧

マシン一覧を確認したい場合は、ls サブコマンドを使います。

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default            virtualbox   Running   tcp://192.168.99.100:2376
dev                virtualbox   Running   tcp://192.168.99.101:2376

この例では、「Docker Quickstart Terminal」で作成された default マシンと、先ほどの例で作成した dev マシンの 2 つのマシンが起動していることがわかります。マシンの状態は、STATE 欄でわかります。STATE の Running は、マシンが起動していることを示します。

マシンの起動と停止

マシンの起動と停止は、それぞれ start サブコマンドと stop サブコマンドを使います。

dev マシンを停止します。

$ docker-machine stop dev

マシン一覧で確認します。

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default            virtualbox   Running   tcp://192.168.99.100:2376
dev                virtualbox   Stopped

dev マシンの STATE が Stopped となっていて、停止していることがわかります。

続いて、dev マシンを起動します。

$ docker-machine start dev
Starting VM...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

マシン一覧で確認します。

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default            virtualbox   Running   tcp://192.168.99.100:2376
dev                virtualbox   Running   tcp://192.168.99.101:2376

マシン接続用環境変数の表示

docker コマンドでマシンを利用するには、利用するマシン毎に、所定の環境変数が正しく設定されていなければなりません。env サブコマンドを使うと、マシン接続に必要な環境変数の情報が表示されます。

dev マシンに接続するための環境変数を確認します。

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

export で始まる行が、環境変数の情報です。DOCKER_ で始まる環境変数が 4 種類あり、それぞれの値が示されています。値は、マシン毎に異なります。

Run this command to configure your shell: と示されている通り、eval "$(docker-machine env dev)" を実行すると、表示されている環境変数が適切に設定されます。

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

環境変数が設定されているか env | grep DOCKER を実行して確認します。

$ env | grep DOCKER_
DOCKER_TLS_VERIFY=1
DOCKER_HOST=tcp://192.168.99.101:2376
DOCKER_CERT_PATH=/Users/magellan/.docker/machine/machines/dev
DOCKER_MACHINE_NAME=dev

DOCKER_ で始まる環境変数が適切に設定されていることがわかります。

これで、dev マシンに接続する準備ができました。docker コマンドを試してみます。

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

535020c3e8ad: Pull complete
af340544ed62: Already exists
library/hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.

Digest: sha256:d5fbd996e6562438f7ea5389d7da867fe58e04d581810e230df4cc073271ea52
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/

マシンの削除

マシンを削除したい場合は、rm サブコマンドを使います。

dev マシンを削除します。

$ docker-machine rm dev
Successfully removed dev

マシン一覧で確認します。

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default            virtualbox   Running   tcp://192.168.99.100:2376

dev マシンがマシン一覧にありません。dev マシンが削除されました。