wsl2にインストールしたDockerを自動起動する
wsl2のUbuntu環境にインストールしたDockerを自動起動する方法を紹介します。
Docker Desktopではなく、Ubuntuの環境にDockerをインストールした場合についての記事になります。
wsl2のUbuntu環境にDockerをインストールする方法はWindows10のWSL2(Ubuntu)にDockerをインストールするで紹介しています。
権限の付与
自動起動の設定をするにあたって、まずは管理者権限でなくてもdockerコマンドを実行できるようにします。
以下のコマンドで、Ubuntuのデフォルトユーザー(インストール時に作成したユーザー)をdockerグループに追加します。
(dockerグループはdockerをインストールしたら自動で作成されます)
$ sudo usermod -aG docker ユーザー名ユーザー名の部分は以下のコマンドで確認できます。
$ whoami自動起動の設定
Ubuntuのターミナルを起動し、以下のコマンドを実行するとターミナルが編集画面に切り替わります。
$ sudo visudo編集画面の末尾に以下の内容を追加します
%docker ALL=(ALL) NOPASSWD: /usr/sbin/service docker startvisudoでの編集はターミナル上でのファイル編集になるため、メモ帳などとは勝手が違います。
以下の手順で行います。
1. iで入力モードに変更する 2. メモ帳と同じ要領でカーソルを移動してテキストを入力する 3. Escで入力モードを終了する 4. 「:w」と入力してファイルを保存する 5. 「:q」と入力してvisudoを終了する
「~/.bashrc」のファイルに以下を追加します。
~/.bashrcif [ $(service docker status | awk '{print $4}') = "not" ]; then
sudo service docker start > /dev/null
fi動作確認
以下のコマンドをホストOSのコマンドプロンプトやPowerShellなどで実行し、wslを再起動します。
(--shutdownコマンドはwslをシャットダウンするコマンドです)
$ wsl --shutdownUbuntuのターミナルでDckerサービスの状態を確認し、起動していることが確認できます。
(Ubuntuのターミナルを起動するとシャットダウンしたUbuntuが自動で起動します)
$ service docker status
* Docker is running