概要
Docker for Windows (beta)のセットアップや、基本的な使い方に関するメモ書き。現時点では機能評価用であり、今すぐ既存の Docker Toolbox に置き換わるものではない。なお、内容はDocker for Windows に興味を持っている方向け。
Docker for Windows とは?
3月末に Docker プロジェクトから Docker for Mac と Windows が発表 された。現時点では目下開発中であり 登録者 向けのプライベート・ベータの位置付け。
Mac 版と Windows 版では別々に開発が進んでおり、内部実装も異なる(Mac は xhyve を使うのに対して、Win では Hyper-V / Win10 が前提)。現時点では Mac 版のほうが機能が先行しており、それを Win 版が追っている状況。Blog の投稿によると、将来的には Win 版の機能も追いつく模様。
セットアップ方法
動作条件
Win 版は Hyper-V を使うため、Windows 10 Education 以上が動作する環境が必須。
事前申請
Private Beta 扱いのため、オンライン上( https://beta.docker.com/ )でサインアップが必要。暫く待つと「Docker Private Beta」という件名でメールが届く。メールには、以下の情報が記載。
- バイナリのダウンロード先
- invitation code(インストール時に必要になるトークン)
ダウンロード先から Docker.msi
をダウンロードする。
セットアップ手順
ダウンロードした Docker.msi
をクリックすると、インストーラが起動する。まずライセンスを確認・同意後、トークンの入力が必要になる。ここで先ほどのメールに届いた Invitation Code を入力する。
Hyper-V の有効化
コントロールパネル
-> プログラムと機能
-> Windows の機能の有効化または無効化
で開いたダイアログの Hyper-V
にチェックを入れて OK
を押す。
使い方
インストールすると、タスクトレイ上に鯨マークのアイコンが常駐する。設定変更等やログ設定は、このアイコンを右クリックして各種メニューを表示する。右クリックから Settings...
を選ぶと、基本設定が表示される。特に、デフォルトでは Windows ログイン時に毎回自動起動してしまうため、常時使わないのであれば Automatically start Docker when you log in
は外したほうが無難。
インストール直後、あるいはデスクトップ上に Docker アイコンができてるので、これをクリックすると自動的に Hyper-V 上に仮想マシンを作成する。また、Docker クライアントは自動的にこの仮想マシン上の Docker エンジンに対してアクセスできるようになる。
docker クライアントからの操作は通常、PowerShell または Cygwin 上から操作可能。 docker version
コマンドを実行すると、クライアントとサーバ側(Hyper-V)の情報を表示する。
PS C:\Users\zembutsu> docker version
Client:
Version: 1.11.0-rc3
API version: 1.23
Go version: go1.5.3
Git commit: eabf97a
Built: Fri Apr 1 23:33:49 2016
OS/Arch: windows/amd64
Server:
Version: 1.11.0-rc3
API version: 1.23
Go version: go1.5.3
Git commit: eabf97a
Built: Fri Apr 1 23:33:49 2016
OS/Arch: linux/amd64
あとは、通常通りコンテナの起動等が可能。たとえば Nginx コンテナを起動し、ポート 80 を開くには、次のように実行。
PS C:\Users\zembutsu> docker run -itd -p 80:80 nginx
a7001a75a4183a4c3703a634ed3d3558377f75aa9135156c0cb1ff008353d53b
PS C:\Users\zembutsu> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
a7001a75a418 nginx "nginx -g 'daemon off" 3 seconds ago Up 2 seconds 0.0.0.0:80->80/
tcp, 443/tcp elated_newton
この時 -p [ホスト側:コンテナ側]
でポートをマッピングしていると、Docker 環境を http://docker/
として名前解決できるようになる。ブラウザ上で http://docker[:port]
を開くと、Nginx の画面が表示される。
※ Docker for Mac の場合は http://docker.local/
で名前解決する。
現状の課題
-
フォーラムに上がっている問題 のいくつかは、自分の環境でも発生している(タイムアウトやボリュームに関して)。
-
操作は PowerShell 上で行う。
-
クライアントがバージョンアップするので注意
-
Docker Client (1.10.0-rc3)
-
Compose (1.7.0rc1)
やはり、今すぐ開発に使うというよりは、評価用の扱い。普通に使うのであれば、まだ当面は Docker Machine を使った方が安全では。
参考情報
- Docker for Mac and Windows Beta: the simplest way to use Docker on your laptop
- https://blog.docker.com/2016/03/docker-for-mac-windows-beta/
- Docker Beta: Docker for Mac and Windows
- https://www.youtube.com/watch?v=9CuClvKMt04