##はじめに
2020/3月末 Windows 10 HomeでWSL2が使用できることになり、Docker desktopに対応することが出来るようになりました。また、WSL2によるDockerの使用は、Hyper-Vを用いた方法よりも15倍速い速度となるため、より軽い処理で実現できます。ただし、OSを開発者verで入れないといけないこと、Dockerも現状edgeという正式版での対応はまだであることから、多少のリスクを伴うため、ユーザーが安心して導入するのはまだしばらく時間がかかりそうです。(2020/4/7時点)
今回は開発版でDockerを入れてみた場合の操作を記載します。
##この記事を読んでもらいたい方
Windows ユーザーでDockerをこれから使いたいエンジニア
もう既にDockerをVMWare等で使用しているエンジニア
Windows 10 pro もしくはEnterprise しか対応してなかったので、Dockerを使えなかったと思っているエンジニア
##注意事項
上記でもアナウンスしましたが、これからWindowsに開発版のOSを入れていきます。
製品版に近いものの、万一OSに問題があった場合、再度OSを入れなおします。その際のフォーマット化に伴い内部ストレージのデータが消えることが予想されます。
必要なデータは外付けHDD or クラウド上に保存するようにして、十分ご理解の上実行してください。
##作業時間
約半日
##概要
1.WindowsOSのversion確認
2.Windows Insider Program(slowRing)にする
3.WSL と Virtual Machine Platform の有効化
4.Linux ディストリビューションの取得および開発者
5.WSL2のデフォルト化とUbuntu<=>WSL2間の接続
6.VScode<=>Ubuntu間の接続
7.Docker Desktopのinstall
8.Dockerの接続を確認
##手順
###1.WindowsOSのversion確認
WindowsOSが10 かつ ver18917以上であることをコマンドプロンプトから、verコマンドで確認しましょう。
versionが低い場合は更新→再起動してください。
###2.Windows Insider Program(slowRing)にする
Microsoftアカウントの登録→ログインから、Insider Programに登録してください。
slowRing とfastRingの違いについて
登録されると以下のガイダンスがでますので、手順に従ってインストールします。
↓[スタート] -[設定] - [更新とセキュリティ]に入って、Insider Programへ
↓[開始]を押してアカウントをリンクさせます
↓Insiderはスローを選択しましょう
###3.WSL と Virtual Machine Platform の有効化
管理者権限でPowerShellを立ち上げ、下記コマンドを実行
#WSLの有効化
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
#Virtual Machine Platformの有効化
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
一度再起動します。(先ほど実行したInsider Program slow.verも有効化します)
その後、WSL2カーネルの更新を行います。
こちら参考にダウンロード→update→再起動するだけ
※ARM64=x64です
※自分のPCがx64かどうかの確認は、「設定」→「システム」→「バージョン情報」で確認できます。
※今後Microsoftはこのような手動でのUpdateはやめ、定常的なWindowsのUpdateにこの操作を内部に組み込むとのことです。
###4.Linux ディストリビューションの取得および初期設定
Windows MicrosoftstoreからUbuntuをinstall
私はUbuntu-18.04をinstallしました。
Ubuntuの初期設定はこちらが参考になりました。
###5.WSL2のデフォルト化とUbuntu<=>WSL2間の接続
#Ubuntu<=>WSL2間の接続
PS C:>wsl --set-version Ubuntu-18.04 2
#WSL2のデフォルト化
PS C:>wsl --set-default-version 2
接続を確認しましょう。
#Ubuntuに接続
PS C:>wsl
#Logoutの確認
PS C:>exit
Ubuntu初期設定後、WSL2環境のUbuntuを操作している状態でファイルを共有します(つまり、LocalのファイルをLinuxコマンドで動作させれるように同期します)
Ubuntuを開き、↓を実行します。
ちなみに実行後、フォルダが開くので、ショートカットを作成しておくと、Localからファイルを触れるようになりますよ。
explorer.exe .
###6.VScode<=>Ubuntu間の接続
VScodeの画面左下「><」こんなのをクリック。「Remote-WSL: New Window」を選択してやると、デフォルトに設定しているUbuntuに接続されます。画像の右のようになればOKです。
###7.Docker Desktopのinstall
やっとDockerに入ってきました。あと少しです。
Docker Desktop for Windowsをinstallしましょう。こちらのEdgeをinstallします。(stableは試しましたが、まだ対応できてませんでした。今後に期待!)
※Docker Desktop のtutorialの注意点とインテグレーション
最初の接続先はPowerShellになってるかと思います。
その場合はwslでUbuntuに切り替えて、Dockerのコマンドを流し込んでいきましょう。
↓tutorialが終わったところから始めます。
defaultの接続先(Resources)をUbuntuにしときましょう。(インテグレーション)
###8.Dockerの接続を確認
tutorialが終われば、PCの立ち上げと同時に自動で立ち上がるようになります。
Ubuntuを起動し、↓下記コマンドを実行。
#nginxを立ち上げます
docker run -p 80:80 nginx
#終了を確認(接続状況を確認)
docker ps
#もし、終了していないdockerがあればこれで接続を切ります
docker kill [CONTAINER ID]
localhostに接続を確認します。→Ctrl + C で終了
↓これがでたらOKです。
お疲れ様でした。
#参考にしたサイト
「WSL 2」は「Windows 10 Home」でも利用可能 ~MicrosoftがFAQを掲載(ニュース記事)
https://forest.watch.impress.co.jp/docs/news/1184353.html
「WSL2とHyper-Vの速度比較について」
https://www.docker.com/blog/new-docker-desktop-wsl2-backend/
「Installation Instructions for WSL 2」
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install
「WSL2入れてみた」
https://qiita.com/TsuyoshiUshio@github/items/947301bd9317610572fc
「windows10のversion.update」
https://support.microsoft.com/ja-jp/help/4027667/windows-10-update
「WindowsカーネルのUpdate方法」
https://japan.zdnet.com/article/35150847/
「Microsoftのカーネル管理方法の意向」
https://news.mynavi.jp/article/20200316-997109/
「Windows Insider ProgramのFast slowの違い」
https://ascii.jp/elem/000/001/099/1099995/
「Windows Insider preview」
https://insider.windows.com/ja-jp/how-to-pc/
「Windows Subsystem for Linuxディストリビューションのインストール」
https://qiita.com/Aruneko/items/c79810b0b015bebf30bb#
「UbuntuとLocalディレクトリとの同期(/home/user/でexplorer.exe .)」
https://note.com/akazawa_studio/n/nda7b97038e5c
「Dockerのinstall(edge版をinstallすること。homeは現在2020/4で開発verしか対応できていない)」
https://hub.docker.com/editions/community/docker-ce-desktop-window
「Docker tutorial」
https://qiita.com/wMETAw/items/8d1b0c053a39841765bf