tl;dr
Docker for Windows が 7/28 位に正式にリリースされたらしいので試してみたメモ。
興味深いのが Docker for Windows は仮想マシンに Hyper-V を利用している点。普通に使う分には Hyper-V を使っていることはユーザーは意識することは無いと思うけど。
導入
要件
- 64bit Windows 10 Pro, Enterprise and Education (1511 November update, Build 10586 or later). In the future we will support more versions of Windows 10.
- The Hyper-V package must be enabled. The Docker for Windows installer will enable it for you, if needed. (This requires a reboot).
64 ビット版の Windows 10 で Pro / Enterprise / Education で Hyper-V が有効になっていること。
今回利用する OS は...
ざっくりとしたハードウェア構成は...
導入手順
以下のページのまま。
インストールが完了後、再起動すると Docker Engine が起動し、タスクバーに Docker アイコンが登録される。
右クリックすると以下のようなメニューが出てくる。
About Docker
を選択してみる。
Settings..
を選択してみる。
色々と...PowerShell を使って触ってみる
docker version
PS C:\Users\kappa> docker version Client: Version: 1.12.0 API version: 1.24 Go version: go1.6.3 Git commit: 8eab29e Built: Thu Jul 28 21:15:28 2016 OS/Arch: windows/amd64 Server: Version: 1.12.0 API version: 1.24 Go version: go1.6.3 Git commit: 8eab29e Built: Thu Jul 28 21:15:28 2016 OS/Arch: linux/amd64
docker info
PS C:\Users\kappa> docker info Containers: 4 Running: 0 Paused: 0 Stopped: 4 Images: 2 Server Version: 1.12.0 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 13 Dirperm1 Supported: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: null bridge overlay host Swarm: inactive Runtimes: runc Default Runtime: runc Security Options: seccomp Kernel Version: 4.4.15-moby Operating System: Alpine Linux v3.4 OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 1.952 GiB Name: moby ID: FZB3:32TQ:3MCG:MYMU:ES7Z:HRVA:3BQB:VDR3:7YXR:F3HL:B5S6:XSUJ Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Insecure Registries: 127.0.0.0/8
お、Alpine Linux が動いているのか。
仮想マシン
Hyper-V 上で動いている仮想マシンの状態を確認してみる。
PS C:\WINDOWS\system32> Get-VM Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Vers ---- ----- ----------- ----------------- ------ ------ ---- MobyLinuxVM Running 0 2048 01:34:33.4740000 正常稼働中 8.0
管理者権限で起動した PowerShell で Get-VM
コマンドレットで稼働中の仮想マシンを確認することが出来る。
また、Hyper-V マネージャで確認することも出来る。
Hello World
PS C:\Users\kappa> docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world c04b14da8d14: Already exists Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker Hub account: https://hub.docker.com For more examples and ideas, visit: https://docs.docker.com/engine/userguide/
nginx コンテナ
PS C:\Users\kappa> docker run -d -p 80:80 nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx 51f5c6a04d83: Already exists a3ed95caeb02: Already exists 51d229e136d0: Already exists bcd41daec8cc: Already exists Digest: sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04 Status: Downloaded newer image for nginx:latest 2389477365e93f7e57ae930d2bdb351b05b032124814e050c617cb05ee8d2a0e PS C:\Users\kappa> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2389477365e9 nginx "nginx -g 'daemon off" 3 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp, 443/tcp silly_roentgen PS C:\Users\kappa> PS C:\Users\kappa> Invoke-RestMethod -Uri "http://localhost" -outfile nginx.txt PS C:\Users\kappa> cat nginx.txt <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>
おお、普通に Docker だ。
以上
15 分位触ってみたメモでした。