WSL2 では systemctl が使えないため、システムの起動時に Docker を自動起動することができない。ただ、Windows 側のタスクスケジューラを使えばできるらしい。
方法
起動用スクリプトを書く
#!/usr/bin/env bash
# このファイルに実行権限も付与しておく
sudo service docker start
パスワードなしで実行できるようにする
#/etc/sudoers
user ALL=(ALL:ALL) NOPASSWD: /bin/sh /path/to/script
タスクスケジューラに設定する
- 全般「最上位の特権で実行する」
- トリガー「ログイン時」
- 操作「C:\Windows\System32\bash.exe」「-c "sudo /bin/sh /path/to/script"」
- 条件「AC電源に接続されているときのみ」を外す
参考
こちらの Qiita 記事を参考にした。Automatically Docker Daemon Boot on Windows Subsystem Linux(WSLにおけるdockerデーモンの自動起動)