LoginSignup
0
1

More than 3 years have passed since last update.

WSL2 + Docker + VSCode の環境構築をしてみた

Posted at

どういう記事か

WSL2 等の詳細については他の方々にお任せするとして、ひとまずインストール等で詰まったこと等をまとめてみました。

私は手順をちゃんと確認せずに困ったりしてたので、公式の手順の後に私が困ったこととかをいくつか書いておきます。(皆さんはドキュメントをちゃんと読むことをお勧めします)

なお、細かい部分等はそれぞれ英語の Docs にはなりますが、やはり公式のを見ていただいた方が良いかと思います。参考資料が目的な方は一番下の参考資料の項目だけご確認いただけたらと存じます。

前提条件

Windows のビルドのバージョンを確認する必要があります。

windows + R でコマンドから実行を開いて以下のコマンドを入力します。

winver

以下のように表示されます。

image.png

このバージョンの値が 1903 以上であることを確認してください。(後ほどまたこのナンバーは関係してきます。)

WSL2 の準備

英語のリンクを以下に用意しましたが、日本語に直したりはしないでください。
というのも、現状(2020/9/23 現在)、英語のドキュメントが先に更新されているので、少し日本語のものと内容が違います。たぶん最近のアップデートがあってそれをまだ日本語では更新していないのかなと思います(2020/9/15 に英語版がアップデートされてます。)

Power Shell を管理者権限で開いて以下のコマンドを実行します。
以下のコマンドで WSL が有効になります。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

(もしかしたら先にここで再起動が必要かもです)
次に "仮想マシン プラットフォーム" オプション機能を有効にします。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

ここで一旦 PC を再起動します。

以下のリンクより msi ファイルを落として実行して Linux のカーネルを更新します。
(ここが日本語の docs だとまだ新しいのになっていなかったのでちょい詰まりました)

最後に WSL の規定のバージョンを WSL2 にしておきます。

wsl --set-default-version 2

これで以降に追加される WSL は WSL2 になるのかもです。

Ubuntu の準備

Microsoft Store で Ubuntu を入れます。
image.png

左の 3 つほどから選択でよいかなと思います。
ここでは Ubuntu-20.04 を使ってます。特に理由はありません。

VS Code の準備

拡張機能をインストールしましょう。

image.png

ご希望の linux (Microsoft Store でダウンロードしたもの)を右クリックして「connect WSL」を選択します。
image.png

なんかいけたっぽいです。image.png

以降は WSL 側での操作とかはここからしたりしました。

Docker の準備

以下に沿って進めていきます。
https://docs.docker.com/docker-for-windows/wsl/

最初と同様に winver コマンドを実行して、それぞれのバージョンにあった Docker Desktop をインストールします。
- 1903 以上 : Edge 版
- 2004 以上 : Stable 版

ダウンロード サイト
https://hub.docker.com/editions/community/docker-ce-desktop-windows/

設定から General のページへ移動。

image.png

Use WSL 2 based engine にチェックを入れて Apply & Restart します。

WSL integration とやらの設定をします。
Docker Desktop の設定から以下のような項目をON にして Apply & Restart。
image.png

VSCode で繋いでみたら無事に docker コマンドが打てた!
image.png

詰まったポイント

以前に少しだけ触ってたりでちゃんと完全に公式の順番通りにしなかった結果招いたエラー達(笑)

wsl コマンドが通らない

そもそも wsl コマンドが通らない時がありました。
特に直す際に環境変数の path とかはいじってません。再起動しなおしてみたり、コマンドを再度入れなおしてみたりをしてたらコマンド通るようになりました。なので、どこかの手順が抜けてただけかもですね。

WSL のバージョン

wsl(1) になっていて docker のコマンドが打てない等がありました。(手順をアレしてたせい)
大元のマシンで管理者権限で Powershell を開いて以下のコマンドを打つと

wsl -l -v

こんな感じでバージョンが分かりました。
image.png

もしも狙いの WSL が ver1 だった場合は以下のコマンドで ver を上げましょう。

wsl --set-version Ubuntu-20.04 2

上記のコマンドでは Ubuntu-20.04 のバージョンを WSL2 にしています(上記の画像参照)

詰まった時に確認したポイント

順番通りにやるのはやっぱり(ちゃんと読まない私には)難しいところがあります。
そうなった時にどうしたかをちょろっと書いてみました。

どこ由来のエラー(?)かを当たりをつける

今回は VSCode, Docker Desktop, WSL2 という要素が絡んできてます。
なので、エラーが起きた際に、どれから確認するかが大事でした。
恐らくなんらかのエラーが出ていると思うので、慌てずエラー メッセージを確認しましょう。
(今回は具体的にはエラーメッセから wsl のバージョンが違う等を確認してみることに繋がりました)

公式のドキュメント(できるだけ英語)を信じる

結局、こういう構築関連で公式を参考にしてエラーが出るパターンってやっぱり自分の手順ミスが多いんだなって感じました。なので、どこか抜けてないかエラーメッセージから確認してみる、手順の最初から追いなおしてみる等がなんやかんや有効だなって感じました。

それでも情報がない時には別途エラーメッセージで Web 検索にかけてみるのが良いかなと感じました。

参考資料

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1