Mac OSX向けDocker 1.8アップグレードガイド – Docker Toolboxの導入
ども、大瀧です。 先日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名>
の出力をログインスクリプトに追加する形が良いでしょう。
eval "$(docker-machine env default)"
まとめ
Dockerバージョン1.8をOSXで利用するための、Docker Toolboxのセットアップ手順をご紹介しました。今回は紹介していないいくつかのツールもバンドルインストールされるようになっていますので、それらも試しに触ってみていただくのも良いでしょう。 fluentdのLogging Driverも追加された、新バージョンのDockerをしゃぶりつくりましょう!