Help us understand the problem. What is going on with this article?

Docker Desktop for Windows 10をセットアップして使ってみる

Docker Desktop WSL 2 backend | Docker Documentationをよく読んでその通りに進めていけばインストールも実行もできます。
使い勝手はDocker Desktop for macOSと大差ないです。

WSL1とWSL2の違い

先日のWindows 10 May 2020 UpdateでWindows Subsystem for Linux 2 (WSL2)という機能が正式リリースされました。

WSL1ではLinuxの命令をWindowsの命令に変換し、Windowsが処理をしていた様子。そのためLinuxカーネルをWindowsは持っておらず、DockerのようなLinuxカーネルを活用するソフトウェアを動作させることができていませんでした。

しかし、WSL2ではHyper-V由来のサブシステム用仮想環境がWindows 10 Home/Proの両方に備えられ、この仮想環境内のLinuxカーネルを使い、処理を行うようになりました。

そのため、WSL2は「完全なLinuxがWindows上で動作する」と待望の機能となっていました...!

Source : 完全なLinuxがWindows 10上で稼働する? 「WSL 2」とは:Windows 10 The Latest - @IT

Windows 10のバージョンを確認

「Windowsの設定アプリ」を開き、「更新とセキュリティ」→「Windows Update」を開きます。
そして画面右にある「OS ビルド情報」をクリックし、「Windows の仕様」のセクションまでスクロールします。

そこの「バージョン」が2004以上であればWSL2を利用することができます。
要件を満たしていない場合にはWindows 10 May 2020 Update を入手するを参照してWindowsを更新しましょう。

Windows Subsystem for Linuxと仮想マシンプラットフォームのインストール

管理者権限でPowerShellを起動して、以下の2つのコマンドを実行。

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

これらのコマンドを実行したらPCを再起動しましょう。
そうすると、更新プログラムを適用するような感じになり、WSL2と仮想マシンプラットフォームが利用可能になります。

Linuxカーネルのバージョンアップ

WSL 2 Linux カーネルの更新に従ってLinuxカーネルを更新します。
このページからインストーラをダウンロードして実行すればカーネルが更新されます。

WSLのデフォルトバージョンを2に設定

そして、デフォルトのWSLバージョンを2に変更します。
powershell
wsl --set-default-version 2

これでWSL2のセットアップが完了。

Docker Desktop for Windowsのインストール

WSL2が正式リリースされたこともあって、Docker Desktop for WindowsのStable版もすでにWSL2に対応しています。

Docker Desktop for Windows - Docker Hub からインストーラをダウンロード!

インストーラを実行し、ウィンドウがこのような感じになったら「Enable WSL 2 Windows Features」にチェックが入っていることを確認して、「Ok」を押下。
(以下のどちらのチェックボックスにもデフォルトでチェックが入っています)

image.png
インストールが完了すると、一度Windowsからサインアウトすることを要求されるので、要求に従いサインアウトしてあげましょう。

Docker Desktop for Windowsの設定

サインアウト後、再度サインインするとDocker Desktop for Windowsが起動しはじめる。
起動するとウィンドウが出てきてチュートリアルを開始しようとしますが、「Skip tutorial」でいいと思います。

ウィンドウの上のほうに歯車アイコンがあるのでそこをクリック。設定画面を開きましょう。

image.png
この画面の「Expose deamon on tcp://localhost:2375 without TLS」にチェックを入れよう。
これにチェックを入れることでPhpStormなどでDocker連携機能を使ったりすることができます。

Hello worldしてみる

試しにコンテナを実行してみよう。

docker run --rm hello-world

これでうまくいけば成功!

おまけ

PhpStormに設定

SettingsのBuild, Execution, Deployment > Dockerを開く。
そして、+をクリックしてこんな感じになればOK。

image.png

次に、Build, Execution, Deployment -> Docker -> Toolsを開く。
Docker Compose executableのパスに.exeを追加してあげましょう。

image.png

この手順を踏む前にDocker ComposeをGUIから使ってみようとすればわかるのですが、なんかうまいこといきません。
Python project Interpreter: docker-compose CreateProcess error=193 – IDEs Support (IntelliJ Platform) | JetBrains にこの解決法が記載されていました。

PhpStormではPHPのremote interpreter、PyCharmではremote interpreterを指定できます。主にPyCharmでは指定してあげるとコンテナ内のpipライブラリの補完をしてくれるようになるので設定すると作業効率が爆上がりが期待できます。

Run/Debug Configurationsも設定してあげるとワンクリックでコンテナの起動ができます。

image.png


Docker Desktop for Windows 10をSurfaceシリーズなどのタッチパネル搭載端末にインストールして利用すると、jsのタッチ入力イベントのデバッグなどを開発機単体でできて非常に便利でした。
けど、かなりの高スペックを要求される印象です。

こちらも合わせて → https://qiita.com/Denpa_Ghost/items/13ee35866c7d3985f4e9

Denpa_Ghost
なんかLaravelとNuxtを触ってます。
http://portal.ghostserver.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした