なんかDockerが2つある??Ubuntu上のDockerを削除する
もしかしたら参考になるかもしれない人
- WindowsでDockerDesktopが起動していないのに、Dockerが使えてしまい、いろいろおかしなことになってしまった人(私です)
- Ubuntu内のDockerを削除したい人
経緯
windowsでLaravel Sailを使った開発を行っており、WSL2,DockerDesktopで開発をしていた。
Dockerについて、詳しいことを理解せず、Sailに頼って開発している。
これまでは、
sail up
で起動する際、DockerDesktopが起動していないと、
Docker is not running.
とエラーが出ていた。
ところが、
最近、WSL2とDockerを使って、ネットワークを体験しよう的な本を買って、ハンズオンで試して以降、DockerDesktopが起動していないのに、sail upで起動できてしまうようになった。
どうやら、起動はできているが、今までと違う場所でDockerが起動しているようで、
migrateをしたはずなのに消えていたり、migrateはできているのにDBと上手く接続できない、などの不具合が起きるようになった。
なにより、なんか2か所でDockerが起動してしまって気持ち悪い。
調査
DockerDesktopが起動していないのに、Sailコマンドができてしまうということは、どこかにDockerがもう一つあるのでは?
DockerDesktopを停止した状態で、
WindowsPowerShellで、
docker -v
したところ、
Docker version 26.0.0, build 2ae903e
続いて、Ubuntuで、
docker -v
をしたところ、
Docker version 26.1.0, build 9714adc
・・・。
なんか、微妙にバージョン違くね??
やっぱり、DockerDesktopと別でUbuntuの中にDockerがいるらしい。
Ubuntuの方で、docker -vをしてもDockerが見つからないようになればいいはず。
Ubuntu内のDockerを削除
sudo apt-get remove docker docker-engine docker.io containerd runc
最初、これをしてみたが、docker -vをしてもDockerが見つかってしまった。
調べていくと、↓のページを発見。
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
を実行したところ、Ubuntuで、docker -vをしても、Dockerが見つからないようになった。
これでよし。
DockerDesktopを起動すると、docker -vをすると、
WindowsPowerShellでも、Ubuntuでも、同じバージョンのDockerが見つかるようになった。
また、
DockerDesktopを停止した状態で、sail upをすると、
以前のように、
Docker is not running.
になるようになった。
一件落着。
振り返り
おそらく、ネットワークの本ハンズオンを真似したときに、そういえば、UbuntuにDockerをいれていたような気もする。(その本ではDockerDesktopを使っていなかった)
なので、それが原因と思われる。
Dockerなんだから、既存の環境に影響とかないっしょ!と思って、不用意に真似していたら、変なことになってしまったので、不用意なハンズオンの真似は要注意だと改めて学んだ。
一方で、このおかげで、ちょっと理解が深まったのでOK。
Discussion