Docker for Macを試す

時代のトレンドはDockerらしいので、Docker for Mac(正式版)を試したみた。

DockerはmacOSWindowsの環境で簡単にDocker環境を構築できるツール「Docker for Mac」「Docker for Windows」の正式版をリリースしたと発表しました。

Docker for Mac/Windowsが正式版としてリリース - Publickey

以前のバージョンなら仮想マシンとしてVirtualBoxをインストールする必要があり、重いソフトを起動させるのは(気分的にも)重いものが有ったのだけど、正式版ではネイティブな仮想化機能がサポートされたので、その課題が解消されている。

Docker for Mac and Windowsは、それぞれのOSのネイティブアプリケーションの形式で提供され、VirtualBoxの代わりにそれぞれのOSに組み込まれている仮想化機能、WindowsではHyper-VMacOSではxhyveを用いることで、より高速で安定した動作が実現できると説明されています。

MacOSとWindowsのネイティブ仮想化を用いたDocker純正ツール「Docker for Mac/Windows」登場、VirtualBoxは不要に - Publickey

動作環境

インストール

下記からダウンロードしたDocker.dmgを使った。(Docker.appをアプリケーションフォルダに入れるだけ)

Docker for Mac is our newest offering for the Mac. It runs as a native Mac application and uses xhyve to virtualize the Docker Engine environment and Linux kernel-specific features for the Docker daemon.

https://docs.docker.com/engine/installation/mac/

なお、Homebrew経由でもインストール出来るが、複数のアプリケーションを組み合わせる必要も無く、またDocker.app自身に更新機能が備わっているので、上記のインストーラを使うのが手っ取り早いと思われる。

brew cask install docker

実行

上記でインストールしたDocker.appを起動させれば直ぐに使える状態になる。(動作状態はメニューバーのアイコンに表示される)


動作確認

まずは動作確認用としてechoコマンドで"Hello world"を実行させた。具体的には下記のコマンドを叩くだけで良い。

$ docker run ubuntu /bin/echo 'Hello world'

https://docs.docker.com/engine/tutorials/dockerizing/

初回のみイメージのダウンロードが行われるので少しだけ時間を要するが、"Hello world"が表示された。2回目以降の実行では、ローカルのイメージを使うので、もちろん待ち時間は発生しない。

$ docker run ubuntu /bin/echo 'Hello world'
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6bbedd9b76a4: Pull complete 
fc19d60a83f1: Pull complete 
de413bb911fd: Pull complete 
2879a7ad3144: Pull complete 
668604fde02e: Pull complete 
Digest: sha256:2d44ae143feeb36f4c898d32ed2ab2dffeb3a573d2d8928646dfc9cb7deb1315
Status: Downloaded newer image for ubuntu:latest
Hello world

次にシェルを起動させた。(引数のオプションに関する説明は下記のサイトを参照)

$ docker run -t -i ubuntu /bin/bash

https://docs.docker.com/engine/tutorials/dockerizing/
$ docker run -t -i ubuntu /bin/bash
root@2cba2a194e4f:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

普通のLinuxのフォルダ構成になっていることを確認した。

所感

導入の容易さはもちろんのこと、仮想環境の起動の早さは驚異的だと思う。上記の一連の作業を行うだけなら(ファイルのダウンロードに要する時間は別として)数分程度で出来てしまう。昔、Mac用の仮想環境としてVMware Fusionを導入してWindowsLinuxを使っていたことがあるけれど、それに比較しても手間は圧倒的に少ない。今後は仮想環境をもっと気軽に活用できる気がする。