blog.comame.xyz

WSL 2 では 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デーモンの自動起動)