🔥

なんかDockerが2つある??Ubuntu上のDockerを削除する

2024/05/02に公開

もしかしたら参考になるかもしれない人

  • 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が見つかってしまった。

調べていくと、↓のページを発見。
https://web.archive.org/web/20220620032719/https://docs.docker.com/engine/install/debian/#uninstall-docker-engine

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