この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ども、大瀧です。 先日Dockerバージョン1.8が公開されました。これに伴い、Mac OSXでのDockerをデプロイする標準ツールがBoot2DockerからDocker Toolboxに変更になりました。今回はその辺りを踏まえて、Mac OSXで既にDockerを使っている方向けにDocker ToolboxおよびDockerバージョン1.8へのアップグレード手順をご紹介します。
検証環境、バージョン
- OS : Mac OS X Yosemite
- Docker : バージョン1.8.1
- Docker Toolbox : バージョン1.8.1
Docker Toolboxとは
Docker Toolboxとは、開発環境でDockerを実行するための関連ツールを含めたインストーラです。Toolboxをインストールすると以下のソフトウェアが一括で入ります。
- Docker Client
- Docker Machine : Docker Serverのデプロイツール
- Docker Compose : Dockerコンテナのオーケストレーションツール
- Docker Kitematic : Dockerコンテナ管理のGUI
- VirtualBox (Docker Serverを実行するVM付き)
詳細は以下のブログ記事およびドキュメントが詳しいです。
アップグレード手順
では、既に旧バージョンのBoot2Dockerがインストールされている前提で、アップグレード手順を見ていきます。まずは、Docker ToolboxのインストーラをToolboxのWebページにある[Download(Mac)]のリンクからダウンロード、実行します。Boot2Dockerの事前のアンインストールは特に不要で、Bood2Docker VMにある既存のDockerコンテナ、イメージは新VMに移行できます。インストーラの画面が表示されたらウィザードの通りに進めていきます。
途中、以下の移行のダイアログが表示されるので、Boot2Docker VMから移行したい場合は[Migrate]をクリックします。
しばらく待ち、以下のダイアログが表示されたら移行完了です。Docker Machine管理下のdefaultマシンに移行されたことを覚えておきましょう。
その後、Docker Toolboxのインストールが完了するとFinderが起動し、[アプリケーション] > [Docker]以下が表示されます。[Docker Quickstart Terminal]は、Docker Machine管理下のdefaultマシンのDocker Serverにアクセスするように初期設定されたTerminalアプリケーションが起動するショートカット、[Kinematic(Beta)]はDockerコンテナをGUIで管理するアプリケーションです。
ここでは、[Docker Quickstart Terminal]をクリックしてターミナルを開き、docker version
を実行してみます。
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ 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
bash-3.2$ docker version
Client:
Version: 1.8.1
API version: 1.20
Go version: go1.4.2
Git commit: d12ea79
Built: Thu Aug 13 02:49:29 UTC 2015
OS/Arch: darwin/amd64
Server:
Version: 1.8.1
API version: 1.20
Go version: go1.4.2
Git commit: d12ea79
Built: Thu Aug 13 02:49:29 UTC 2015
OS/Arch: linux/amd64
bash-3.2$
バージョン1.8.1が動いていることがわかりますね。今回の環境では、Boot2DockerでいくつかのDockerイメージを作成していたので、それらが移行されているか確認してみます。
bash-3.2$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
httpd latest a2ceb9245c63 4 weeks ago 162 MB
nginx latest 319d2015d149 8 weeks ago 132.8 MB
ubuntu 14.04 6d4946999d4f 8 weeks ago 188.3 MB
dajobe/nghttpx latest 1a8e94ed1700 11 weeks ago 149.2 MB
きちんと引き継がれていますね!VirtualBoxのVM一覧を確認してみると、元々のBoot2DockerのVM(boot2docker-vm)はそのまま残っていて電源オフになっており、Docker Machine配下の新しいVMはVM名「default」として実行中ということがわかります。
boot2dockerコマンドの読み替え
Boot2Dockerでは、Boot2DockerのVMをコントロールするboot2docker
コマンドがありました。同様の操作をdocker-machine
コマンドで読み替えて利用することになります。使い方はboot2docker
とほとんど一緒ですが、マシン名を引数に入れる必要があるため、マシン名のdefaultを指定することを覚えておきましょう。
マシンの一覧
bash-3.2$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
default * virtualbox Running tcp://192.168.99.100:2376
bash-3.2$
マシンの停止
bash-3.2$ docker-machine stop default
bash-3.2$ docker-machine status default
Stopped
bash-3.2$
マシンの起動
bash-3.2$ docker-machine start default
Starting VM...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
$ docker-machine status default
Running
bash-3.2$
マシンへのログイン
bash-3.2$ docker-machine ssh default
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015
Docker version 1.8.1, build d12ea79
内部ではBoot2DockerのLinux VMが引き続き利用されていることがわかりますね。
好みの端末でdockerコマンドを実行する
上述の[Docker Quickstart Terminal]ショートカットからは、既定でOSX標準のターミナルアプリケーションで端末が起動します。ただ、iTerm2など馴染みの端末でコマンド操作したいこともあるでしょう。[Docker Quickstart Terminal]で実行される初期化スクリプトはシェルスクリプトとして/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh
に記述されているため、このスクリプトが参考になります。docker-machine env <VM名>
の出力をログインスクリプトに追加する形が良いでしょう。
# .bash_profileの末尾などに追加
eval "$(docker-machine env default)"
まとめ
Dockerバージョン1.8をOSXで利用するための、Docker Toolboxのセットアップ手順をご紹介しました。今回は紹介していないいくつかのツールもバンドルインストールされるようになっていますので、それらも試しに触ってみていただくのも良いでしょう。 fluentdのLogging Driverも追加された、新バージョンのDockerをしゃぶりつくりましょう!