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 start
visudoでの編集はターミナル上でのファイル編集になるため、メモ帳などとは勝手が違います。
以下の手順で行います。
1. iで入力モードに変更する 2. メモ帳と同じ要領でカーソルを移動してテキストを入力する 3. Escで入力モードを終了する 4. 「:w」と入力してファイルを保存する 5. 「:q」と入力してvisudoを終了する
「~/.bashrc」のファイルに以下を追加します。
~/.bashrc
if [ $(service docker status | awk '{print $4}') = "not" ]; then
sudo service docker start > /dev/null
fi
動作確認
以下のコマンドをホストOSのコマンドプロンプトやPowerShellなどで実行し、wsl
を再起動します。
(--shutdown
コマンドはwsl
をシャットダウンするコマンドです)
$ wsl --shutdown
Ubuntu
のターミナルでDcker
サービスの状態を確認し、起動していることが確認できます。
(Ubuntu
のターミナルを起動するとシャットダウンしたUbuntu
が自動で起動します)
$ service docker status
* Docker is running