話題の記事

Public BetaになったDocker for Macを使ってみる

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

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___Docker

ダウンロードしたDocker.dmgをダブルクリックします。すると以下のようにFinderの画面が開くので、指示通りDockerアイコンをアプリケーションフォルダにドラッグアンドドロップします。

Docker_と_Docker

Finderでアプリケーションフォルダを開きます。Dockerをダブルクリックします。

アプリケーション_と_アプリケーション

「OS X Yosemiteを使っていると、スリープモードから戻った時にCPUリソースを大量に消費するissueがあるよ」という警告が出ます。とりあえず認識したので、[OK]ボタンをクリックします。

スクリーンショット_2016_06_22_16_30

Welcome画面が表示されます。[Next]ボタンをクリックします。

スクリーンショット_2016_06_22_16_30 2

するとメニューバーにDockerアイコンが表示されます。

スクリーンショット_2016_06_22_16_31

Dockerアイコンをクリックすると、以下のようにメニューが表示されます。サービスとしてRunningになっていることがわかります。

スクリーンショット_2016_06_22_16_35

設定

メニューからPreferencesを開きます。[General]設定では以下3つが設定できます。

Preferences_と_1__bash_と_Getting_Started

[Advanced]設定ではCPUとメモリの消費量を設定できます。こういったチューニングをGUIベースで出来るのは嬉しいですね。

Preferences

実行してみる

では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/にアクセスして動作確認をします。

Welcome_to_nginx_

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で設定が変えられるのもナイスですね。正式リリースが楽しみです。