normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Docker for Windows を試してみる

今回はもう流行ってずいぶん経つ Docker が Windows 版に対応したので、こちらの疎通をとってみる。今回の手順は Get started with Docker for Windows を踏襲した程度なので、英語に抵抗感のない人はこちらを試すことをお勧めする。
注意として現状のクライアント OS は「64bit Windows 10 Pro, Enterprise and Education (1511 November update, Build 10586 or later)」のバージョンのみ利用可能だという点だ( Windows Server 側はこの限りではない )。
Docker for Windows は内部で Hyper-V を利用しているため「Windows の機能の有効化または無効化」で以下の様に Hyper-V の機能を有効化する。
f:id:waritohutsu:20161231015736p:plain

上記を実施後に Get started with Docker for Windows から Docker for Windowsインストーラを取得し、セットアップを実施する。セットアップの実施後、作成された Docker for Windows のアイコンから起動すると以下のウィンドウが表示される。
f:id:waritohutsu:20161231015856p:plain

さらに Hyper-V マネージャを起動すると、以下の様に MobyLinuxVM が表示される。これらが表示されない場合はセットアップ後にしばらく待つ。
f:id:waritohutsu:20161231020006p:plain

次に、PowerShell ISE を起動し、以下の様にコマンドが実行されるか確認する。

PS C:\Windows\System32\WindowsPowerShell\v1.0> docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.5
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs

Docker for Windows のインストールが完了していることを確認後、以下のコマンドを利用して nginx の Web サーバを起動し、プロセス一覧から実行中であることを確認する。

PS C:\Windows\System32\WindowsPowerShell\v1.0> docker run -d -p 80:80 --name webserver nginx
docker : Unable to find image 'nginx:latest' locally
発生場所 行:1 文字:1
+ docker run -d -p 80:80 --name webserver nginx
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Unable to find ...latest' locally:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
latest: 
Pulling from library/nginx
75a822cd7888: Pulling fs layer
0aefb9dc4a57: Pulling fs layer
046e44ee6057: Pulling fs layer
046e44ee6057: 
Verifying Checksum
046e44ee6057: Download complete
0aefb9dc4a57: 
Verifying Checksum
0aefb9dc4a57: Download complete
75a822cd7888: 
Download complete
75a822cd7888: 
Pull complete
0aefb9dc4a57: 
Pull complete
046e44ee6057: 
Pull complete
Digest: sha256:fab482910aae9630c93bd24fc6fcecb9f9f792c24a8974f5e46d8ad625ac2357
Status: Downloaded newer image for nginx:latest
1f0fa6a7e1433102f52437e192f8b9579a8721405fc17a47553016f5fec52b33

PS C:\Windows\System32\WindowsPowerShell\v1.0> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
1f0fa6a7e143        nginx               "nginx -g 'daemon off"   10 minutes ago      Up 10 minutes       0.0.0.0:80->80/tcp, 443/tcp   webserver

最後にブラウザからアクセスすることで正常に Docker のイメージが実行されていることを確認する。
f:id:waritohutsu:20161231020037p:plain