プログラマーな日々

プログラマーです。AWS認定ソリューションアーキテクト–アソシエイト。好きなものは、C#, TaskChute Cloud, WorkFlowy, Backlog, AWSです。

Docker for WindowsでHello World

Docker for WindowsでDockerに入門してみました。

概要

  • Dockerはコンテナ型の仮想化。
  • Docker for Windowsの内部ではHyper-Vを使用。

コンテナを使うメリット

  • パッケージング
    • OSやミドルウェアなどの実行環境をイメージに含められる。
  • 配布
    • イメージ共有/配布の仕組みがある。
      • DockerHub、Amazon Elastic Container Registryなど
  • ポータビリティ
    • 開発環境、テスト環境、本番環境で共通のイメージを使える
    • インフラの移行も容易
  • イミュータブルインフラストラクチャ
    • 一旦固めたイメージは変更しない。変更する場合は最初から作り直す。
    • インフラの状態変更による挙動の変化に悩まされなくなる。

システム要件

Install Docker for Windows | Docker Documentation

The current version of Docker for Windows runs on 64bit Windows 10 Pro, Enterprise and Education (1607 Anniversary Update, Build 14393 or later).

インストール

Install Docker for Windows | Docker Documentation

Hello World

docker runでHelloWorldイメージを実行し、以下が出力されれば成功。

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pulling fs layer
d1725b59e92d: Verifying Checksum
d1725b59e92d: Download complete
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
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.
    (amd64)
 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 ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

トラブルシュート

docker: image operating system "linux" cannot be used on this platform.

Windows 10 (Hyper-V) で Docker を使った Wordpress 実行環境を構築する - Qiita

Linux になっていない場合は、タスクトレイに表示される Docker アイコンを右クリックし、 Switch to Linux container... を選択します。

Failed to switch because your Windows version is not compatible.

msinfo32.exeを実行し、ファームウェアで仮想化が有効いいえになっている場合は、BIOSの設定で仮想化を有効にする。

参考