【WSL】WSL2 ~ Docker Desktop / 環境構築編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2017/09/23/235818

の続き。

Windows上でDockerを使う機会があった。
前回行った方法と異なっていることが多かったのでメモ。

 また、WSL2 が導入されたことにより、
Windows上でLinuxを動かしたりするのが、大分やりやすくなった。
(MacやChrome Bookを買おうとしてたけど、その必要なくなるかも...)

※2021/11/03追記
Docker Desktop がビジネスでは有料になったので
以下の関連記事に別方法を記載。

Windows 上で WSLコマンドを使って Linux 環境を構築
https://dk521123.hatenablog.com/entry/2021/11/03/003836

目次

【1】WSL2
 1)WSL2 とは?
 2)WSL2 コマンド

【2】Docker 環境設定
 1)Docker Desktop のインストール
 2)エラー「WSL 2 installation is incomplete.」が表示された場合
 3)動作確認
 4)【おまけ1】VS CodeからLinuxコマンドを実行する

【3】Hello world的なことやる
 1)hello-worldイメージからコンテナを起動する
 2)DockerでNginxを動かしてみる

【4】Linux(Ubuntu) 設定
 1)Dockerで設定する
 2)【おまけ1】「Microsoft Store」から設定する
 3)【おまけ2】「Microsoft Store」が使えない場合に...

【1】WSL2

1)WSL2 とは?

* WSL2;Windows Subsystem for Linux 2 の略
 => Windows 10上でLinuxを動作させるための仕組みであるWSLのversion2
* Docker Desktop をインストールすると、デフォルトでインストールされる
* 以下のサイトの構成図と説明が分かりやすい

https://tech-lab.sios.jp/archives/21675

2)WSL2 コマンド

# コマンド 説明
1 wsl -l -v インストールされているディストリビューション名/ステータス/バージョンを表示
2 wsl -d <ディストリビューション名> ディストリビューション開始
3 wsl -t <ディストリビューション名> ディストリビューション停止
4 wsl --set-version <ディストリビューション名> WSLバージョンを設定

https://www.kdkwakaba.com/archives/948

【2】Docker 環境設定

1)Docker Desktop のインストール
2)エラー「WSL 2 installation is incomplete.」が表示された場合
3)動作確認

1)Docker Desktop のインストール

https://hub.docker.com/editions/community/docker-ce-desktop-windows/

から、Docker Desktop (Docker Desktop Installer.exe)をダウンロードし、
インストールする
 ⇒ チェックボックスが2~3あるが、そのまま付けておく
 ⇒ インストール後、再起動する必要がある

2)エラー「WSL 2 installation is incomplete.」が表示された場合

* Windows再起動後に、以下のエラー内容が表示されたら、以下の対象方法を行う
 ⇒ 表示されていない場合は、Skipして、3)に移行

【対象方法】
* 以下をダウンロード(wsl_update_x64.msi)して、インストールする。
 ⇒ インストール後に、Docker を再起動する
 ⇒ Docker Desktop is runningが表示されたらOK

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

エラー内容

WSL 2 installation is incomplete.

The WSL 2 Linux kernel is now installed using a separate MSI update package.
Please click the link and follow the instructions to install the kernel update:
https://aka.ms/wsl2kernel .

Press Restart after installing the Linux kernel.

参考文献
https://astherier.com/blog/2020/08/install-docker-desktop-on-windows10-with-wsl2/

3)動作確認

* 以下のコマンドを実行して、エラーがでないことを確認する

# Dockerの確認
docker --version
docker-compose --version

# WSL2の確認 (ディストリビューション一覧を表示)
wsl -l

<出力結果例>
Linux 用 Windows サブシステム ディストリビューション:
docker-desktop (既定)
docker-desktop-data
ディストリビューション 説明
docker-desktop Dockerを動かすためのエンジン
docker-desktop-data Dockerイメージ/コンテナを格納

4)【おまけ1】VS CodeからLinuxコマンドを実行する

[1] VS Code で [Terminal]-[New Terminal]を選択
[2] TERMINAL の「+」ボタン押下し「Ubuntu(WSL)」を選択
[3] 試しに「grep --help」を入力し実行する

【3】Hello world的なことやる

* Hello world的なこととして、以下を行ってみる(任意)

1)hello-worldイメージからコンテナを起動する
2)DockerでNginxを動かしてみる

1)hello-worldイメージからコンテナを起動する

* コマンドプロンプトで、以下をコマンドする
(hello-worldイメージからコンテナを起動するコマンド)
~~~~~
docker run hello-world
~~~~~

動作確認

# 動いているコンテナの確認
docker ps -a

2)DockerでNginxを動かしてみる

* コマンドプロンプトで、以下をコマンドし、Nginxを設定する
~~~~~
docker run --name hello-world-nginx -d -p 8080:80 nginx
~~~~~

動作確認

1) Docker を開き、「hello-world-nginx 8080」が表示されていることを確認
2) ブラウザで「http://localhost:8080」にアクセスする
 => 「Welcome to nginx!」が表示されたらOK

【4】Linux(Ubuntu) 設定

1)Dockerで設定する

1)Docker コマンドを入力

* 以下をコマンドする
~~~~
docker run -it ubuntu bash
~~~~

2)更新処理(確認の意味を込めて)

* 以下をコマンドする
~~~~
apt update
apt upgrade
~~~~

3)後片付け

* Docker Desktop の GUIのゴミ箱アイコンから削除可能

2)【おまけ1】「Microsoft Store」から設定する

※ 以下のサイトが参考になる

https://qiita.com/zembutsu/items/22a5cae1d13df0d04e7b

1)「Microsoft Store」を開く

* Windowsマークの隣の検索枠に「Microsoft Store」を入力し、Enterキー押下

2)検索ボックスに「Linux」を入力

* 今回は、「Ubuntu」を選択
 ⇒ そんだけ。

※ 他にも「Debian」「OpenSUSE」などがあるので、お好みで。

3)動作確認

1)  Windows のスタートメニューをクリックし、「Ubuntu」と入力
2) 初期設定として、Ubuntu のユーザ名とパスワードを指定
 ⇒ これで、Windows上で、Linuxが動くようになる
 ⇒ コマンドで更新もできる
~~~~~
sudo apt update
sudo apt upgrade
~~~~~

3) コマンドプロンプトなどで、「wsl -l」を入力し、
 「Ubuntu」が表示されていることを確認する。

>wsl -l
Linux 用 Windows サブシステム ディストリビューション:
docker-desktop (既定)
docker-desktop-data
Ubuntu << 増えとる

なお、続き(以下の3)含めて)は、以下の関連記事を参照のこと。

Windows Terminalを使ってWindows上にあるUbuntuでDockerを使えるようにする
https://dk521123.hatenablog.com/entry/2020/12/10/094125

3)【おまけ2】「Microsoft Store」が使えない場合に...

* 社内ネットワークの都合上、「Microsoft Store」が使えない場合は
 以下のサイトから落として、設定もできる
 ⇒ ***.appxファイルをダウンロードして、
  各Linuxディストリビューションをインストールできる

LinuxWindows サブシステム ディストリビューション パッケージを手動でダウンロードする
https://docs.microsoft.com/ja-jp/windows/wsl/install-manual

関連記事

WSL2 ~ Docker-CE / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/14/224428
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
WSL2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/01/29/000000
WSL ~ Windows Terminal ~
https://dk521123.hatenablog.com/entry/2020/12/10/094125
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/25/000000
Docker compose ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000
Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Windows / Docker Desktop でのトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/12/11/115814