Dockerは便利だけど仮想環境だのLinuxだの意味不明で間違いないなくIT初学者にとって一つのハードルだと思う。でもこれだけ人気で俺のいる会社でもよく使うから学ばないという選択肢はない。俺は昔、死んだ魚の目をしたデブなおっさんにDocker使うのとLinuxコマンドでデータ集計するからWSL2入れとけって言われたんだけど、エラーが出まくっておっさんもDockerも嫌いになった。みんなにはそうなってほしくない。
ということで今回はWindowsにWSL2をインストールする方法を解説する。ディストリビューションはUbuntu。
目次:クリックでジャンプ
前提知識
- DockerはLinuxカーネル上で動作する。
- Windows上でDockerを動かすためには、Windows上にLinux環境を作る必要がある。
- WSLとは「Windows Subsystem for Linux」の略でWindows上で動くLinux環境のこと。
- Windows上のUbuntuはWSL2と理解しておけばOK。
WSLとUbuntu 20.04のインストール
WSL2のインストール
以下のコマンドを実行。
wsl --install -d Ubuntu-20.04
上記のコマンドでWSLとUbuntu 20.04のインストールする。WSLを初めてインストールした場合は、再起動を求められるのでWindowsを再起動する。
自動的にUbuntuが起動し「Error: 0x800701bc」エラーメッセージがでたら、wsl --updateコマンドをPowerShellで叩く。
もう一度Ubuntuを再起動すると、ユーザー名とパスワードを聞かれるので、これらをUbuntuに設定。
ユーザー名・パスワードはWindowsとは共有ではないので別のものでOK。
「wsl -l -v」コマンドでWSL2が有効になり、Ubuntuのバージョンが2にであることを確認。これでWSL2のセットアップは終わり。バージョンが1の場合は下記のコマンドを実行してバージョン2にする。
wsl --set-version Ubuntu 2
Ubuntuのアップデート・アップグレード
Ubuntuのアップデート・アップグレードは自動的に行われない。
なので下記のコマンドで定期的にアップデートが必要。
sudo apt update && sudo apt upgrade
Windows環境からLinux環境のファイルにアクセス
WindowsのエクスプローラーでLinux環境のファイルにアクセスするには、アドレスバーに「¥¥wsl$」または、「¥¥wsl.localhost」と入力する。
Linux環境(Ubuntuのシェル)からWindows環境のファイルにアクセス
Linux環境からWindowsのCドライブにアクセスする場合は、「/mnt/c」、Dドライブは「/mnt/d」と指定。
「root@DESKTOP-AO75RNI:/mnt/c#」は以下のLinux環境のフォルダを指す。
ここで覚えておくことは、「C:\」というパスがWindowsのCドライブで、Ubuntu(wsl2)からみると「/mnt/c」というディレクトリとして存在し、アクセスできる。
PowerShellからUbuntuのシェルを起動
wslコマンドを使用する。
これで「ls」コマンドなどのLinuxコマンドが使える。
Ubuntuのデフォルトユーザーを変更
起動時のデフォルトユーザーが以下のようにrootのスーパーユーザーになってる。なので、rootから自分が登録したユーザーに変更する。
新規にユーザーを作成
ユーザー登録していない場合、useraddコマンドで新しいユーザーを登録します。Ubuntuで下記を実行。ユーザー登録してる人は不要。
useradd -m -s $SHELL monkeyDluffy
ユーザー登録されてるか確認は下記の「sudo vi /etc/passwd」コマンドを実行。
sudo vi /etc/passwd 下記が表示される。 root:x:0:0:root:/root:/bin/bash ..... monkeyDluffy:x:1000:1000::/home/monkeyDluffy:/bin/bash
「/etc/passwd」というファイルに、テキスト形式でユーザ名とログインシェルのペアが定義されてる。自分の場合は「monkeyDluffy」のユーザー名で登録していた。
ファイルを「:q!」を入力して保存せずに閉じる。
passwdコマンドでユーザー名のパスワードを設定
パスワード変更、新たに設定するには下記を実行。
passwd monkeyDluffy New password: Retype new password: passwd: password updated successfully
次に「usermod」コマンドで、monkeyDluffyに管理者権限を付与してsudoコマンドで管理者権限でコマンドを実行することができるようする。
usermod -G sudo monkeyDluffy
追加したmonkeyDluffyユーザーをデフォルトのユーザーに変更
UbuntuではなくWindows側から実行。
「Ubuntu-20.04」のディストリビューションがインストールされてるので、そのデフォルトユーザーをrootからmonkeyDluffyに下記のコマンドで変更。
Ubuntu2004 config --default-user monkeyDluffy
これで起動時のデフォルトのユーザーがmonkeyDluffyに変更されていればOK。
projectフォルダを作成
mkdir projectsと打ってprojectsフォルダを作成。
WSLをdocker desktopに結合する
今この状態でdockerコマンドを打ってもdockerコマンドは使えない。
これでApply & Startボタンを押す。その上のチェックボタンだけでも大丈夫かも?
これでdockerコマンドが使えるようになった。