WSL2起動時にdockerを自動起動したい

2024.04.20.追記

/etc/wsl.conf の設定を変更することで、以下よりもスマートに対応できることがわかったので、こちらの方法を推奨する。

teachme.jp

環境

  • Windows11
  • WSL2
  • Ubuntu22
  • docker-ce

コンテキスト

WSL2上のUbuntu22を起動の際にdockerdを自動起動したい。 しかし、WSL2はsystemctlではなくsysvinitのため、sudo systemctl enable docker 的なことができない。

参考:

解決方法: ~/.bashrc に以下エントリを追加。

if [ $(service docker status | awk '{print $4}') = "not" ]; then
  sudo service docker start > /dev/null
fi

これだけだと、WSL2起動時に毎回PWの入力を求められて面倒なので、 /etc/sudoers にエントリを追加する。

(1) sudo visudo

(2) 以下の個所の値を %sudo ALL=(ALL:ALL) NOPASSWD:ALL に変更する。( NOPASSWD:ALL を追記する)

(3) Ctrl + s で編集内容を保存、 Ctrl + x でnanoエディタを終了。

※sudoersの文法的に不正な編集をすると、このタイミングで以下のメッセージが出力されるので、e を入力してエラー箇所を再度修正する。

>>> /etc/sudoers: syntax error near line xx <<<
What now?

参考:

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */