WindowsパソコンでDockerを使うための3つの方法


 Dockerを試す場合、Windowsパソコンが1台あれば立派なDocker環境が出来ます。

 今回は、以下の3種類の方法をご紹介させていただきます。お好みに合わせてお選びいただければと思います。

  1. VMwareやHyper-Vなどの仮想マシン上のLinuxにDocker(Linux版)をインストールする
  2. Windows上にDocker for Windowsをインストールする
  3. Windows上にWindowsコンテナ―をインストールする

 Dockerは初めてだけどLinuxは使える、という方は「1」の方法をおすすめします。ご利用になる仮想マシン環境ですが、今後のことを考えると、やはりHyper-Vがおすすめです。その理由としましては、もうすぐWindowsでDockerが標準装備される時代が来る予定ですが、その環境ではHyper-Vが必須になるということが挙げられます。現状ではHyper-Vは他の仮想化ソフトと同時実行が出来ませんので、例えばVMware上のLinuxでDocker環境を作ってしまうと、同じパソコンでWindowsコンテナを同時に動かせないということになります。

 DockerでLinuxのコンテナは経験ある、という方は「3」の方法でWindowsのコンテナを触ってみるのはいかがでしょうか。但し、Hyper-Vが必須となります。

 Linuxに慣れていなくて、Dockerをちょっと試してみたい方は、「2」の方法がよろしいかと思います。でも、Dockerを深くお知りになりたい場合は、別途Linuxに慣れていただいて、「1」の方法で勉強した方が良いと思います。といいますのは、「2」の方法ですと、Dockerに命令するクライアントの環境とDocker本体の環境が異なるOS上にあることになりますので、ハマるポイントが増える危険性があります。Dockerにお詳しい方なら問題ないかもしれませんが。

 では、上の3つの方法について以下で紹介させていただきます。

(補足)
※Docker for WindowsはWindows10(64bit、Pro以上、バージョン1511以上)がサポートされております。Hyper-V必須です。
※Windowsコンテナ―はWindows10(64bit、Pro以上、バージョン1607以上)で動作します。Hyper-V必須です。 ※Windows10向けのDockerは開発版です。(2016.9現在)
※Docker for WindowsとWindowsコンテナは、それぞれが使用するWindows版のDockerクライアントのバージョンが異なりますので、共存は出来ないと思われます。
※Windowsコンテナ―はWindowsServer2016上でも利用可能ですが、申し訳ございませんが本ページでは取り扱っておりません。投稿に向けて準備中です。

1.VMwareやHyper-Vなどの仮想マシン上のLinuxにDocker(Linux版)をインストールする

 WindowsパソコンにVMwareなどの仮想化ソフトウエアをインストールして、Linuxなどの勉強をされている方は多いかと思います。

 Dockerはとても軽量かつシンプルな構成でして、仮想マシン上のLinuxでも問題なく使えます。

 仮想マシン上のLinuxにDockerをインストールするからといって、通常のLinuxへのインストールと異なることはありません。サポートされているディストリビューションも多く、メジャーなものはほぼ全てインストール可能です。

 インストール方法ですが、Docker公式サイトや一般サイトにある情報で問題なくインストールできると思います。

 本サイトでも、CentOSへのインストール方法を掲載しております。よろしかったらご利用ください。

 Dockerを使用する場合は、仮想Linuxマシンへsshなどでログインしていただき、シェルにてdockerコマンドを実行してご利用いただくことになります。

 尚、作成可能なDockerコンテナは、Linux仮想環境のみです。

 

 

2.Windows上にDocker for Windowsをインストールする

 Docker社のホームページを見ると「DOCKER FOR WINDOWS」という文字列が容易に見つかると思います。そこから「Docker for Windows」のインストーラ(msi形式)を入手し、インストールすることで利用することが出来ます。

 簡単にインストール方法をご紹介します。

 

1.「Docker for Windows」インストーラ入手

 Docker公式サイトより「Docker for Windows」のインストーラInstallDocker.msiを入手します

 

2.「Docker for Windows」インストーラの実行

 入手したInstallDocker.msiをダブルクリックして実行します。

 以下のウインドウが表示されますので、「I accept the terms in the License Agreement」のチェックボックスにチェックを入れて「Install」ボタンを押します。

dfw01-2

 インストール処理が終わりますと、以下のウインドウが表示されますので、「Launch Docker」のチェックボックスにチェックを入れて「Finish」ボタンを押します。

dfw02-2

 Dockerの起動が完了すると、以下のウインドウが表示されます。

dfw04-2

 「Got it!」のボタンを押してウインドウを閉じます。

 

(注意)

もし以下のウインドウが表示された場合は、Hyper-Vが有効になっておりませんので、「Enable & Restart」ボタンを押して下さい。パソコンが再起動され、Hyper-Vが有効になり、Dockerが起動されます。

dfw03-2

 

 起動後は、コマンドプロンプト(cmd.exe)やpowershellなどでdockerコマンドを使用してオペレーションを行います。

 この「Docker for Windows」は、Windows上にDocker環境を提供するものですが、Windows上でWindowsコンテナ(Windowsの仮想環境)を動かせるDockerではありません。

 「Docker for Windows」でインストールされる環境は下図のような環境です。

dockerforwindows01

 つまり、「Docker for Windows」のインストーラによって、Windows10上のHyper-V内にLinux仮想マシンが作成され、そのLinux内にDockerがある、という構成になります。

 Dockerは仕様上、Dockerの心臓部であるDockerデーモンが動いているOSの仮想環境のみ作成可能です。

 よって、「Docker for Windows」で作成可能なコンテナはLinuxの仮想環境ということになります。

 1番目に紹介した方法もLinuxの仮想環境しか扱えませんが、1番目と異なるのは、DockerクライアントがWindows版ソフトウエアということです。

 通常ですと「Hyper-Vマネージャー」を使用すれば、Hyper-V上の仮想OSに接続して、コンソールにてオペレーション可能ですが、「Docker for Windows」のLinuxに「Hyper-Vマネージャー」で接続しても、画面がブラックアウトしていて操作が出来ませんでした。(そもそも、ログインユーザ名とパスワードが解りませんのでログインは出来ないのですが・・・)

 この状態ですと、Dockerの環境設定などが変更出来ず不便なのですが、「Docker for Windows」にてDocker関する設定が可能なI/Fが用意されてます。

(「Docker for Windows」のDocker環境設定方法)

  1. デスクトップ右下のタスクバー内の「∧」マークをクリックすると小さなウインドウが開きます
  2. 小さなウインドウ内の「クジラ」マークのアイコンを右クリックするとメニューが表示されます
  3. メニュー内の「Settings...」をクリックします。

 以下のウインドウが表示されますので、ここで各種設定の変更が出来ます。内容に関しましては、申し訳ございませんがDocker公式サイトをご覧ください。

dockersettingsmenu

(注意)
「Docker for Windows」をインストールする際の注意点としましては、Hyper-Vが前提である関係上、他の仮想化ソフトと同時実行が出来ないという点があります。Hyper-Vの有効/無効を切り替える(Windowsの再起動が必要)ことで共存は出来ますが、同時に動かすことはできないようです。

 

 

3.Windows上にWindowsコンテナーをインストールする

 Windows上でWindowsコンテナの作成や実行が出来るDocker環境を作る方法の紹介になります。

 2016年9月、Windows Server 2016がリリースされましたが、WindowsServerに初めてDocker実装が実現されました。

 また、Windows10(pro以上)にも、2016年のAnniversaryアップデートでWindowsコンテナが提供されました。

 本ページでは、Windows10を使用して、Windowsコンテナを使用する方法をご紹介したいと思います。

 ではまず始めに、インストールにはpowershellのコマンドを使用しますので、powershellのウインドウを開きます。その際「管理者モード」で起動する必要があります。

※管理者モードでpowershellを起動する場合は、powershellアイコンを右クリックし、表示されたメニューから「管理者として実行」を選択します

 管理者モードのpowershellが起動できましたら、まずはWindowsコンテナ機能を有効化します。以下のコマンドを実行してください。

※コマンド先頭の「>」は。powershellのプロンプトです。

> Enable-WindowsOptionalFeature -Online -FeatureName containers -All

 

 Windowsコンテナを使うにはHyper-Vが必要です。起動していない場合は、以下のコマンドで起動します。パソコンの再起動を伴います。

 既にHyper-Vを有効にされている方はこのコマンドは実行不要です。

※前にもお伝えしましたが、Hyper-Vは他の仮想化ソフトと同時実行は出来ません。

> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

 上のコマンドの実行が完了しましたら、パソコンの再起動を行って下さい。方法は問いません。

 パソコンが起動しましたら、再度、管理者モードのpowershellを起動します。

 現在のリリース(2016.9現在)では既知の問題があるようですので、以下のコマンドにて対応が必要です。(Microsoft公式情報)

> Set-ItemProperty -Path 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers' -Name VSmbDisableOplocks -Type DWord -Value 1 -Force

 このコマンドによって「OpLock」が無効になります。元に戻す場合は次のコマンドを実行します。「Set-ItemProperty -Path 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers' -Name VSmbDisableOplocks -Type DWord -Value 0 -Force」

 

 次はいよいよDockerのインストールです。以下のコマンドでDockerをダウンロードします。

> Invoke-WebRequest "https://master.dockerproject.org/windows/amd64/docker-1.13.0-dev.zip" -OutFile "$env:TEMP\docker-1.13.0-dev.zip" -UseBasicParsing

 以下のコマンドで、ダウンロードしたファイルをインストールします。

> Expand-Archive -Path "$env:TEMP\docker-1.13.0-dev.zip" -DestinationPath $env:ProgramFiles

※インストール先は、powershellにて「$env:programfiles」を実行することで表示されます。

 

 以下のコマンドで、Dockerインストール先をPATH環境変数に追加します。

> [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker", [EnvironmentVariableTarget]::Machine)

 

 ここで、環境変数を読み込ませるためにpowershellを起動し直します。忘れずに、管理者モードで起動します。

 

 以下のコマンドで、DockerサービスをWindows10のサービスに登録します。

> dockerd --register-service

 最後に、以下のコマンドでDockerサービスを起動します。

> Start-Service Docker

 これで、Windowsコンテナが利用可能になりました。

 現在起動中のpowershellでも良いですし、コマンドプロンプトでも良いですので、dockerコマンドを実行してみてください。但し、どちらも「管理者モード」での起動が必要です。

 ちなみに私は、最初は、以下のコマンドでMicrosoft公式のnanoserverイメージを入手しました。これはCUIベースのWindowsイメージです。

> docker pull microsoft/nanoserver

 

 尚、Windowsコンテナのインストール手順については、MicrosoftのDeveloper Network内の「Windowsコンテナー」のドキュメントを参考にしております。ご不明な点は、公式サイトをご確認いただければと思います。こちらのページからコメントを頂いても結構です。できる限りの対応はさせていただきます。

まとめ

 ご紹介した3つの方法、いかがでしたでしょうか。

特に3番目の方法はまだまだこれからの技術ですので、調査が必要な場面が多いかもしれません。しかし、近い将来、きっと役立つスキルになると思われますので、私としましては色んなことに挑戦していこうと思っております。

 ご不明な点、その他なんでも良いですのでDockerに関する情報がありましたら、コメントいただけるとうれしいです。

 最後までお読みいただいてありがとうございました。

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください