dockerを利用している開発案件でdockerコマンドが使えなくなるという問題がよくおこるので
原因と対処法について調べてみました。
可能性1)Docker Desktopは起動しているか
WSL2でdockerを使っている場合、DockerDesktopを利用してDocker環境を動かしていないか確認してみましょう。
DockerDesktopとはWindowsやMacなどのOSで簡単にDocker環境を構築できるツールです。
以下のようなエラーが出た場合はDockerDesktopが起動していない可能性があります。
DockerDesktopアプリを起動してdockerコマンドが利用できるようになるか確認してみましょう。
The command 'docker-compose' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.
For details about using Docker Desktop with WSL 2, visit:
https://docs.docker.com/go/wsl2/
https://docs.docker.com/go/wsl2/ を確認すると
WSL 2 上で Docker Desktop を利用する方法や注意点が書かれているので参考にするのをお勧めします。
可能性2)Dockerデーモンが起動していないかも
通常、DockerはLinuxシステムでサービスとしてバックグラウンドで動作します。
しかし、Dockerデーモンが起動していない場合、dockerコマンドを利用することができません。
その場合は以下を実行してDockerデーモンを手動で起動することで
dockerコマンドが利用可能になります。
$ sudo service docker start // docker起動コマンド
$ sudo service docker status // docker起動状況を確認
sudo
を使用しているのは、Dockerデーモンを起動するためには通常管理者権限が必要なためです。
ただし、通常はDockerデーモンが自動的に起動するように設定されているはずです。
Dockerが自動的に起動しない場合は、以下の手順でDockerを自動起動に設定できます。
$ sudo systemctl enable docker // docker自動起動の設定を追加
まとめ
WSL2でdockerコマンドが起動しない際の原因やその対処法について見ていきました。
これら以外にもいろいろ原因はありそうですので、また他の原因について分かったときは追記していこうと思います。