Public BetaになったDocker for Macを使ってみる
はじめに
Dockercon 16、盛り上がってますね!行きたかったなー。たくさんの発表がある中、今日はこちらの注目。
これまでPrivate Beta扱いだったDocker for MacとDocker for WindowsがPublic Betaになりました。これからは誰でも触って試すことができます。
ということで、早速触ってみました!
やってみた
インストール
Docker for Macのシステム要件は以下の通りです。特にVirtualBoxのバージョンには注意で、4.3.30以下だとインストール時にエラーが出ます。
- Mac must be a 2010 or newer model, with Intel’s hardware support for memory management unit (MMU) virtualization; i.e., Extended Page Tables (EPT)
- OS X 10.10.3 Yosemite or newer
- At least 4GB of RAM
- VirtualBox prior to version 4.3.30 must NOT be installed (it is incompatible with Docker for Mac)
早速公式Webサイトでダウンロードできるようになっています。[Download Docker for Mac]をクリックします。
ダウンロードしたDocker.dmgをダブルクリックします。すると以下のようにFinderの画面が開くので、指示通りDockerアイコンをアプリケーションフォルダにドラッグアンドドロップします。
Finderでアプリケーションフォルダを開きます。Dockerをダブルクリックします。
「OS X Yosemiteを使っていると、スリープモードから戻った時にCPUリソースを大量に消費するissueがあるよ」という警告が出ます。とりあえず認識したので、[OK]ボタンをクリックします。
Welcome画面が表示されます。[Next]ボタンをクリックします。
するとメニューバーにDockerアイコンが表示されます。
Dockerアイコンをクリックすると、以下のようにメニューが表示されます。サービスとしてRunningになっていることがわかります。
設定
メニューからPreferencesを開きます。[General]設定では以下3つが設定できます。
[Advanced]設定ではCPUとメモリの消費量を設定できます。こういったチューニングをGUIベースで出来るのは嬉しいですね。
実行してみる
ではGetting Started with Docker for Macに従って、実際に動かしてみます。まずはバージョンの確認。RCリリースされたばかりの1.12であることが分かります。
$ docker --version Docker version 1.12.0-rc2, build 906eacd, experimental $ docker-compose --version docker-compose version 1.8.0-rc1, build 9bf6bc6 $ docker-machine --version docker-machine version 0.8.0-rc1, build fffa6c9
サクッとnginxを立ち上げます。
$ docker run -d -p 80:80 --name webserver nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx Status: Downloaded newer image for nginx:latest
docker psで起動中のコンテナを確認。ちゃんと上がってますね
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 66ff7bb2f34e nginx "nginx -g 'daemon off" 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, 443/tcp webserver
Webブラウザでhttp://localhost/にアクセスして動作確認をします。
Swarm Modeで実行してみる
じゃ、せっかくなので1.12の目玉機能であるSwarm Modeも使ってみます。まずはswarm initします。
$ docker swarm init Swarm initialized: current node (dx9xrfalo2cwdy8bj868kr4lw) is now a manager.
Overlayネットワークを作成します。
$ docker network create -d overlay nginx_net
そしてdocker service createで、nginxを起動します。まずは2台。
$ docker service create --name nginx-swarm --replicas 2 --network nginx_net -p 80:80/tcp nginx
docker service lsで状態を確認。Replicasが2で起動していますね。
$ docker service ls ID NAME REPLICAS IMAGE COMMAND 6m3sep957i1d nginx-swarm 2/2 nginx
ではReplicasを変更してみます。
$ docker service update nginx-swarm --replicas=4
結果を確認。Replicasが4台になりました。
$ docker service ls ID NAME REPLICAS IMAGE COMMAND 6m3sep957i1d nginx-swarm 4/4 nginx
さいごに
これまでMacでDockerを使う場合はboot2dockerが使われていましたが、今後はDocker for Macによってオーケストレーションまで可能になります。GUIで設定が変えられるのもナイスですね。正式リリースが楽しみです。