2024.04.20.追記
/etc/wsl.conf
の設定を変更することで、以下よりもスマートに対応できることがわかったので、こちらの方法を推奨する。
環境
- 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?
参考: