マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • 互換レイヤではなくなり、単にHyper-VでホストされるLinux
    • Hyper-Vは、WSL2専用にカスタマイズされた軽量版を使用。
    • という事で、Home Editionでも利用可能になっている。
    • Linuxカーネルも独自パッチで軽量化を実現している。
  • UI/UXはWSLと同じ(UXを踏襲)
  • ホストと異なるIPアドレスだったが、
    Build 18945で改善されたもよう。
  • DrvFs? → P9の影響はどうなるか?

詳細

インストール

システム要件

  • Windows Insider Preview Build 18917以降が動作している環境であることが必須
  • 「Windows 10 20H1」(バージョン 2004)で正式版がリリースされた。
  • 従来通りWSL1をインストールしてから、PowerShellでWSL2に変換する

WSL1, 2 共存可能?

  • 共存可能とのこと
    • いつでも、WSL2にアップグレード、ダウングレード可能(PowerShellで)。
    • この操作は、ディストリビューション毎に行うことが出来るらしい。
  • エミュレーション環境(互換レイヤ)から仮想環境に変更されたが、
    UXを踏襲(DrvFs? → P9とか)するので、敢えて、WSL1, 2を共存させなくても良さそう。

Docker Desktop for WSL2

  • 色々な記事が出ているが、ザックリ以下のような感じ。
  • 以下のような特徴があり、
    • WindowsのGUI操作性
    • LinuxのCUI活用
    • Linuxコンテナへのデプロイ
  • 端的に言うと、
    • IDEだけWindows側にあって、
  • 開発環境(e.g. LAMPスタックなど)は、WSL2 + Docker側にある。
    • DockerコマンドはLinux側から実行。
    • 後は、リモート・デバック(IDEから?LXCから?)

GUIサポート

  • リリース直前に、「GUIも利用可能になる。」というニュース・リリースがあった。
  • 久しぶりに調査をしたら、この機能はWindows 11 ビルド22000以降とあった。

概要

仕組みは不明だが、

恐らくRemoteApp的な方式になるのではないか?

と考えている。

参考

試用、評価

WSL2本体

Win11のリリース日程も発表された今頃(2021/09/02)、漸く、
WSL2にアップグレードすることにした(PCも 21H1 になってるし)

  • 前提
    • WSL(1)インストール済み。
    • 直接はWSL2をインストールできないらしい。
  • 手順
  • WSL2に更新
  • OSのアップデート
    20H1以降で利用可能らしい。
  • 仮想マシン プラットフォームオプション機能有効化
    (Hyper-Vは必須ではないのでHome EditionでもOKらしい)
  • WSL 2 を既定のバージョンとして設定(PowerShell
    >wsl --set-default-version 2
    ※ 自分の場合は「この操作を正しく終了しました。」で終了。
  • WSLのバージョンを確認する。
    >wsl --list --verbose
      NAME            STATE           VERSION
    * Ubuntu-18.04    Stopped         1
  • WSLのバージョンを変更する。
    >wsl --set-version Ubuntu-18.04 2
    変換中です。この処理には数分かかることがあります...
    WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
  • WSLのバージョンを再確認する。
  • 起動前
    >wsl --list --verbose
      NAME            STATE           VERSION
    * Ubuntu-18.04    Stopped         2
  • 起動
    Ubuntu-18.04アイコンなどをクリックしWSLを起動。
  • 起動後
    >wsl --list --verbose
      NAME            STATE           VERSION
    * Ubuntu-18.04    Running         2
  • 動作確認(相互運用)
  • Linux側からWindows側のファイル・システムにアクセスしてみる。
    $ dir mnt/c
    ...Windows側のC:\以下のファイル・ディレクトリを参照可能。
    結果:問題なくアクセスできた。
  • Windows側からLinux側にネットワーク・アクセスしてみる。
    (WSL(1)はローカル・プロセスだったが、WSL2ではVMになったので)

    ・Linux側:ncコマンド
    $ nc -lk 9999
    hogehoge

    ・Windows側:TCP/IPテストツール
     GUIで127.0.0.1:9999に接続

    結果:問題なく接続&受信できた。

Dockerサポート1

(≒ Docker Desktop for WSL2

  • 前提
    • Docker Desktop導入済み。
    • WSL2へアップグレード済
  • 手順
  • タスク・トレイ中のDocker Desktopアイコンをクリック
  • 画面が表示されたら歯車マークから管理画面へ遷移
  • User the WSL 2 based engine に
    チェックを入れ[Apply&Restart]を押下。
  • 再起動
  • Docker Desktopを再起動中にエラー
  • 次いで、PCを再起動するもエラー
  • Linux カーネル更新プログラム パッケージを
    ダウンロードして実行してインストールする。
  • その後、タスク・トレイからDocker Desktopを
    再起動するなどして、正常に動作するようになった。
  • 動作確認
    適当なDockerコマンドやDockerコンポーズを動かしてみる。

Dockerサポート2

Docker Desktop for Windows有償化対応 ...と言う事で
WSL2自体の内にDockerコマンドやDockerコンポーズを入れる。

  • ディストリビューション追加(Ubuntu 20.04)
  • 確認
    >wsl --list --online
    ...
    NAME            FRIENDLY NAME
    Ubuntu          Ubuntu
    Debian          Debian GNU/Linux
    kali-linux      Kali Linux Rolling
    openSUSE-42     openSUSE Leap 42
    SLES-12         SUSE Linux Enterprise Server v12
    Ubuntu-16.04    Ubuntu 16.04 LTS
    Ubuntu-18.04    Ubuntu 18.04 LTS
    Ubuntu-20.04    Ubuntu 20.04 LTS
  • 追加インストール
    >wsl --install -d Ubuntu-20.04
  • Ubuntu上にDocker Engineをインストール
  • リポジトリをセットアップ
    ・aptパッケージ・インデックスを更新
    $ sudo apt-get update
    ・インストール・パッケージを更新
    $ sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg \
      lsb-release
    ・Docker社の公式GPGキーを追加
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    ・安定したリポジトリを設定
    $ echo \
     "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • Docker Engineのインストール
    ・インストール
    $ sudo apt-get update
    $ sudo apt-get install docker-ce docker-ce-cli containerd.io
    ・実行
     ・手動起動
    $ sudo /etc/init.d/docker start
     ・動作確認
    $ sudo docker run hello-world
  • 既存のdocker-compose.ymlの位置へ。
    $ cd /mnt/c/...
  • docker-composeを実行
    $ docker-compose up
  • 表示されたURLにアクセスして、
    jupyter/pyspark-notebookを使用。

開発とデバッグ

WSL(1)の手順と、何がどう変わったのか?的な話。

GUIサポート

Windows 11 ビルド22000以降らしい。

参考

Publickey

窓の杜

Qiita

@IT

  • Windows 10 The Latest

kledgeb

Microsoft Docs

Docker Desktop for WSL2

Qiita

SIOS Tech. Lab

  • WSL2で劇的に変わるあなたのWebアプリケーション開発環境
  • 【連載】WSL2、Visual Studio Code、
    DockerでグッとよくなるWindows開発環境

Developers.IO


Tags: :Windows, :Linux, :Linuxサブシステム, :仮想化


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-17 (金) 16:05:24 (7d)