Docker

Windows10 HomeにDocker Desktop for Windowsをインストールする【Docker】

windows10 HomeにDocker Desktop for Windowsをインストールするための条件

注意 ※バージョンや環境によっては正常に動作しない可能性があります。

Windows10 HomeでDockerを使うには条件があります。

以下、ちょっとめんどくさいですが、前提条件です。

前提条件

  • Windows10 Home(19018+)のバージョン(バージョン2004ってやつ)
  • Windowsの機能「Linux用Windowsサブシステム(Windows subsystem for linux)」を有効にしている
  • Windowsの機能「仮想マシンプラットフォーム」を有効にしている
  • wsl(Windows subsystem for linux)がバージョン2になっている

前提条件の準備手順

手順
  • STEP1
    Windows 10 バージョン 2004に更新
    Windows10のバージョンを2004に上げます。不具合があるので自己責任。
  • STEP2
    Linux用Windowsサブシステム(Windows subsystem for linux)の有効化
    Windowsの機能から有効化します。
  • STEP3
    仮想マシンプラットフォームの有効化
    Windowsの機能から有効化します。
  • STEP4
    wsl2にする
    wsl2を使うためには、カーネルコンポーネントの更新が必要です。

Windows 10 バージョン 2004にする

Windows10 Homeのバージョンが指定のものになっている必要があります。

Windows 10 バージョン 2004 の新機能 - Windows Blog for Japan
※ 本ブログは、米国時間 5/27 に公開された “What’s new for IT pros in Windows 10, version 2004” の抄訳です。 このたび、Windows Server Update Services (WSUS) および Windows Update for Business ...

Windows 10 バージョン 2004というやつです。「Windows 10 May 2020 Update」と呼ばれる、大型のアップデートになります。

Windowsは現在後継OSを開発するという形ではなく、Windows10を大型アップデートすることによって、新しい状態を保つ、という方向で動いています。1年に2回、3月と9月に予定しているとのことでして、その一環の更新がこの2004なんです。

実はこの大型アップデートに結構不具合がありまして、映像関連などで古いデバイスドライバを使っていると、ブルースクリーンになってしまう、なとが見つかっています。

そのため、Windows updateを自動にしていても、マイクロソフトのほうで更新がされない設定になっていて、結構な人がまだアップデートされていない状態になります。

なので、2020年の9月時点では、そういったリスクがあることをわかった上で、アップデートする必要があります。

この一番新しいバージョンにすると、windows10 Homeでもwsl2が使えるようになり、これが使えるとDockerをwindows10 home上でも使えるようになります。

繰り返しになりますが、結構不具合が大く、windows updateには表示されていない人も多いです。

このアップデートは何かあった時に環境を戻すことができる人だけが自己責任で対応する、という形になります。

手動でアップデートする場合はのリンクは以下です。

Windows 10 のダウンロード

インストールした後、すでに更新プログラムがあるのですが、一緒にインストールされてなかったので、Windows updateで更新確認をしておくとよいかもです。

結構変わるので、アップデートいやいや人はちょっと嫌だなと思うかもですね。

IMEの予測変換のレイアウトなど、IME系が結構変わってます。

また、不具合等は以下のページに乗っています。

Windows release health
Quickly find official information on Windows updates and servicing milestones. Access resources, tools, and news about known issues and safeguards to help you p...

Windowsの機能を有効にする

次は機能面です。

Windowsの機能にあるもので、Linux用Windowsサブシステムと仮想マシンプラットフォームを有効にしておく必要があります。

コントロールパネルに「Windowsの機能」というのがあります。コントロールパネルから行くのは面倒なので、タスクバーの検索窓にWindowsの機能とすれば「Windowsの機能の有効化または無効化」というのが出てくるので、それが楽です。

Windowsの機能の有効化または無効化の画像【windows10 HomeにDocker Desktop for Windowsをインストールする】

wslについては以下にあります。

Windows Subsystem for Linux に関するドキュメント
Linux 用 Windows サブシステムに関するドキュメントの概要。

インストールの手順などもここにあります。

Linux用Windowsサブシステムは再起動することで設定が反映されます。

「Linux用Windowsサブシステム(Windows subsystem for linux)」

「Windowsの機能の有効化または無効化」の中に「Linux用Windowsサブシステム」というのがあります。

Linux用Windowsサブシステムの選択画面【windows10 HomeにDocker Desktop for Windowsをインストールする】

環境によって項目名が違うらしく、自分の環境では「Linux用Windowsサブシステム」でした。Windows subsystem for linuxとかは検索すると良く見ます。どうも途中で表記が変わっているようです。

これは、WSLという、Windows10でLinuxを使う用の機能です。Dockerを使うには、WSL2が必要なので、ここで有効化しておきます。

この後、wsl2用にカーネルコンポーネントを更新する必要があるのですが、同じ画面でできる次の設定に行きます。

仮想マシンプラットフォーム

仮想マシンプラットフォームの選択画面【windows10 HomeにDocker Desktop for Windowsをインストールする】

WSL2を使うには、Windows10 PROに入っていたhyperVを使う必要があったのですが、これがWindows10 2004では仮想マシンプラットフォームという部分を有効化すれば使えるようになっているみたいですね。

hyperVはHomeにはないようですし、自分も使っていないのですが、Dockerはインストール出来たので。

Linux 用 Windows サブシステムに関する FAQ
"WSL で何ができますか" などの、Linux 用 Windows サブシステムについてよく寄せられる質問 (FAQ) への回答をご確認いただけます。

wsl2に更新する

次に、wsl2を既定のバージョンにします。

そのためにはまずLinuxカーネル コンポーネントを更新する必要があります。

その後、Powershellから「wsl –set-default-version 2」とコマンドを打つと、wsl2になります。

カーネル コンポーネントの更新

以下のページに Linux カーネル更新プログラム パッケージがあるので、それをダウンロードして実行します。

WSL のインストール
コマンド wsl --install を使用して Linux 用 Windows サブシステムをインストールします。 Windows コンピューター上で、好みの Linux ディストリビューションによって実行される Bash ターミナルを使用します。Ubuntu、Debian、SUSE、Kali、Fedora、Peng...

この更新をしないでwslのデフォルトバージョンを更新しようとしても、「WSL2を実行するには、カーネル コンポーネントの更新が必要です。詳細については…」的なメッセージがでて上手くいきません。

まず、カーネルコンポーネントを更新する必要があります。

PowerShellでWSL2をデフォルトバージョンにする。

次に、PowerShellでwslのバージョンを2にします。

PowerShellをタスクバーの検索窓から検索した画面【windows10 HomeにDocker Desktop for Windowsをインストールする】

これもタスクバーの検索窓でPowershellと打つのが楽です。

PowerShellは簡単に言ってしまうと、すごく機能を拡張したコマンドプロンプトみたいなものです。

PowerShellで「wsl –set-default-version 2」と実行すると、既定のバージョンが2になります。

PowerShellのコマンド画面【windows10 HomeにDocker Desktop for Windowsをインストールする】

この辺りは、今後のアップデートでどんどん変わっていくそうです。1つのコマンドで仮想環境の有効化からインストールまで、さらにWSL2がデフォルトになる、というのが公式からアナウンスされています。

捕捉のLinuxインストール

このwslは簡単に言ってしまうとWindowsでLinuxを使うための機能なわけですね。なので、大体Linuxをインストールするのがセットになっています。

MicosoftのドキュメントでもUbuntuのインストールまでセットになっています。

自分も適当にUbuntuを入れてあります。Linux ディストリビューションはなんでも良さそうですね。自分の好きなものを入れればいいのかなと思います。

先ほどの項目の画像で「wsl -l -v」とコマンドを打っていますが、-lがディストリビューションの一覧で、-vがそれのwslのバージョンです。

コマンドの結果として「Ubuntu-20.04 Running 2」と出ていますがこれで、UbuntuがWSL2で動いているよ、ということがわかります。

やっとDockerのインストール

ここまでやって、やっと「Docker Desktop for Windows」がインストールできます。

以下からダウンロードできます。

Docker Desktop
Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

Windows10のバージョンを上げないとインストールできない

冒頭の前提条件にも書きましたが、Windows10のバージョンが古いと使えません。

Dockerインストール時のエラーメッセージ【windows10 HomeにDocker Desktop for Windowsをインストールする】

Homeの場合は19018+とでます。2004というmayアップデートのバージョンが必要になります。

更新しないと、上の加増のように出てインストールできないので、この辺りはやってみるとわかると思います。

「Windows 10 May 2020 Update」は不具合の多さから、Windows updateを自動にしていても、有効になっていない人が多いです。Windows updateを見て、そこに表示されている更新プログラムを適用しても、Dockerインストール時に上のメッセージが出ている人は、「Windows 10 May 2020 Update」が自動で表示されないPCの可能性があります。その場合は手動でWindowsをアップデートする必要があります。この措置は、不具合が起きる可能性のあるデバイスドライバを使っているかどうかを自動で判別しているみたいですね。

インストールする

Docker Desktop Installer.exeを起動します。

そうすると、ダウンローダーが起動してインストールが始まります。

「enable wsl2 windows features」WSL2を有効にするにチェックを入れてインストールします。

Installation succeededと出れば完了です。

Docker Desktop がWindows Homeで起動できました。

ここまで来るのにとても大変でした。

まとめ

Windows10 Homeでは普通の方法ではDockerは使えなかったようですが、Windows10のアップデートで使えるようになるという発表を見てまして。

Linux自体もWindowsでかなり使いやすくなるとのことで、楽しみにしていたのですが、mayアップデートの不具合で見送っていたのです。

ただ、中々出てこないのでもういいかなとWindowsをアップデートしてみました。

サーバーに上げる前に、Linux環境で自分が作ったアプリが動くのか試す方法で一番良さそうなのがDockerだったので、Windowsで使いたいな~というのが動機です。

とりあえずインストール出来たので良かったです。

マイクロソフトの発表によると、WSL2はまだまだ色々改善されていくようなので楽しみです。

Windows上で仮想のLinuxをがっつり動かせるとなると、サーバー環境に近いLinux環境を簡単に作れてかつ使えることになるので、Windowsでの開発がすごくやりやすくなりそうな、そんな気がします。

タイトルとURLをコピーしました