らんだむな記憶

blogというものを体験してみようか!的なー

WSL2 上で Docker を使いたい

とかかな。なお、/mnt の下の Windows っぽい領域をマウントして使う場合は遅くなるらしい。

基本的には普通に公式の手順に従って Install using the repository を実行しなさいという形のようだ。

また、いつもの

sudo groupadd docker
sudo usermod -aG docker $USER

もしておくと楽、ではある。以下もやると楽・・・ではあるがどうだろうか。

sudo のパスワードを聞かれないようにする などを参考に、/etc/sudoers

ユーザー名 ALL=NOPASSWD: /usr/sbin/service docker start, /usr/sbin/service docker stop, /usr/sbin/service docker restart

を追加してしまい、~/.bashrc

if service docker status 2>&1 | grep -q "is not running"; then
  sudo service docker start
fi

を追加するとまぁまぁ快適になりはすると思う。ただ、systemd を使わずに、ターミナル起動時にパスワードなしで docker を起動するコマンドが走ってしまうので、行儀は良くない。

リリースノートを読むと、

  • 2023-01-19
    • 20.10.23
  • 2023-02-01
    • 23.0.0
  • 2023-02-09
    • 23.0.1

という感じで何故かいきなりメジャーバージョンが急激にあがっているのだが、0 -> 3 が飛びすぎていてちょっと躊躇うな。まぁいいかと思ってアップデートしておいた:

$ docker --version
Docker version 23.0.1, build a5ee5b1

ある日突然何故か

mount: /sys/fs/cgroup/cpuset: wrong fs type, bad option, bad superblock on cgroup, missing codepage or helper program, or other error.

という感じで docker 起動時に怒られることがあるかもしれないが、mount cgroup v2 error (Docker) · Issue #9868 · microsoft/WSL · GitHub を参考に、以下を実行すると直るという説があって、実際エラーは消えた。まったくよく分からない。

  1. Re-enable Hyper-V and restart the computer.
  2. Edit (or create) the file /etc/wsl.conf in WSL, and add the follow lines:
[boot]
systemd=true
  1. Run wsl --shutdown as an administrator in PowerShell to close the WSL instance, and then restart WSL.