新しい言語について学ぶ前ににわかDocker知識をマシにする(余談)

Dockerファイルを使って実際に構築する前に、WindowsPCがこんな表示を出してきた。

 

WSL 2 is not installed

 

PowerShellでWSLをインストールしろと言われている。このWSLとは何なのか。

調べると、おそらくWindows Subsystem for Linuxであるらしいことがわかる。

また、ポップアップのタイトルからWindows Subsystem for Linuxににはがでていることがわかる。

公式ドキュメントがあったため、URLを記載しておく。

Linux 用 Windows サブシステムとは | Microsoft Docs

ほとんどのコマンド ライン ツール、ユーティリティ、アプリケーションを含む GNU/Linux 環境を変更せずそのまま Windows 上で直接実行できます

ドキュメント内で上記のように記載されていることから、Windows上でLinuxの機能が使えるということだろう。

また、同ドキュメント内にWSL2の説明も記載されている。

使用感は同じだが、内部的には従来とは異なり、パフォーマンスも強化されているらしい。

 

何奴かわかったところで、公式ドキュメントがあったためそれを参考にWSLをインストールする。

WSL のインストール | Microsoft Docs

管理者権限でPowerShellを起動し、下記コマンドを実行。

wsl --install

そうすると、下記文章が表示された。

Copyright (c) Microsoft Corporation. All rights reserved.

使用法: wsl.exe [Argument] [Options...] [CommandLine]

Linux バイナリを実行するための引数:

    コマンドラインを指定しない場合、既定のシェルが起動され wsl.exe ます。

    --exec、-e <CommandLine>
        既定の Linux シェルを使用せずに、指定したコマンドを実行します。

    --
        残りのコマンドラインをそのまま渡します。

オプション:
    --cd <Directory>
        指定したディレクトリを現在の作業ディレクトリとして設定します。
        ~ が使用されている場合は、Linux ユーザーのホームパスが使用されます。パスが始まる場合
        文字が含まれている場合は、Linux絶対パスと解釈されます。
        それ以外の場合、この値は Windows絶対パスである必要があります。

--分布、-d <Distro>
        指定したディストリビューションを実行します。

    --ユーザー、-u <UserName>
        指定されたユーザーとして実行します。

Windows Subsystem for Linux を管理するための引数:

    --ヘルプ
        使用方法に関する情報を表示します。

    --install [Options]
      追加の Windows Subsystem for Linux ディストリビューションをインストールします。
      有効なディストリビューションの一覧を表示するには、'wsl--list--online' を使用してください。

        オプション:
            --distribution, -d [Argument]
                名前を指定して配布をダウンロードしてインストールします。

                引数:
                   有効なディストリビューション名 (大文字と小文字は区別されません)。

                例:
                    wsl --install -d Ubuntu
                    wsl --install --distribution Debian

    --set-default-version <Version>
         新しいディストリビューションの既定のインストールバージョンを変更します。

    --shutdown
        直ちに、すべての実行中の配布および WSL 2
 軽快なユーティリティの仮想マシンを終了します。

    --status
        LinuxWindows Subsystem の状態を示します。

    --update [Options]
        オプションが指定されていない場合、WSL 2 カーネルは更新され
 、最新バージョンになります。

        オプション:
            --rollback
                以前のバージョンの WSL 2 カーネルに戻します。

Windows Subsystem for Linuxディストリビューションを管理するための引数:

    --export <Distro> <FileName>
        ディストリビューションを tar ファイルにエクスポートします。
ファイル名には、標準出力として - を使用できます。

    --import <Distro> <InstallLocation> <FileName> [Options]
        指定した tar ファイルを新しいディストリビューションとしてインポートします。
ファイル名には標準入力として - を使用できます。

        オプション:
            --version <Version>
                新しいディストリビューションに使用するバージョンを指定します。

    --list, -l [Options]
        ディストリビューションの一覧を表示します。

        オプション:
            --all
                現在インストールまたはアンインストールされているディストリビューションを含む、すべてのディストリビューションを表示します。

            --running
                現在実行中のディストリビューションのみを表示します。

            --quiet, -q
                ディストリビューション名のみを表示します。

            --verbose, -v
                すべてのディストリビューションに関する詳細な情報を表示します。

            --online, -o
                'wsl --install' を使用してインストールするために使用できるディストリビューションの一覧を表示します。

    --set-default, -s <Distro>
       ディストリビューションを既定として設定します。

    --set-version <Distro> <Version>
        指定されたディストリビューションのバージョンを変更します。

    --terminate, -t <Distro>
        指定されたディストリビューションを終了します。

    --unregister <Distro>
        ディストリビューションの登録を解除し、ルートファイルシステムを削除します。

これは、ドキュメントにも記載されている通り既にWSLはインストールされているということだろう。

続いて、WSL2をインストールする。

新しい Linux ディストリビューションをインストールするときに既定のバージョンを WSL 1 または WSL 2 に設定するには、コマンド wsl --set-default-version <Version#> を使用します。<Version#> は、1 または 2 のいずれかに置き換えます。

とあるので、下記コマンドを実行。

wsl --set-default-version 2

すると、下記文章が出現。

Windows仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっていることを確認してください。
詳細については、https://aka.ms/wsl2-install を参照してください

これについては下記記事を参考にして、仮想化を設定

WSL2をインストールして使うときの注意点 - Qiita

Windows の機能の有効化または無効化を覗くと、

確かに仮想マシンプラットフォームが有効になっていなかった。

再起動後、DockerDesktopを起動すると、やや時間がかかったものの無事起動。

PowerShellでdockerコマンドを入力してもきちんと応答が返ってくることを確認。

 

自分の場合は以前使っていたDockerを諸事情で停止させた後上記を行った経緯があるため、完全に最初から行った場合とは違った挙動をしているかもしれないが、行ったことは大体同じではないだろうか。

次回こそDockerファイルを作成予定。