摘要
Ubuntu 22.04,一堆容器正在运行,但是docker ps给出的结果是空的。本文简述如何解决问题。
结论
除了用apt install docker.io,还用snap安装了docker。用snap卸载了docker之后,重新启动Ubuntu,问题解决了。用docker ps列出了所有正在运行的容器。
解决步骤
用通义千问,先查看docker的日志,命令如下:
sudo journalctl -u docker.service
几年的日志啊,日志里面倒是显示,经常DNS解析有问题。
于是去认真检查Ubuntu的DNS解析设置,顺便认真确认了网卡的TCP/IP设置。
最终回到Google,用下述命令列出Ubuntu安装了多少名称有docker的服务,命令如下:
dpkg -l | grep docker
执行后的结果是:
ii docker 1.5-2 all transitional package
ii docker-compose 1.29.2-1 all define and run multi-container Docker applications with YAML
ii docker.io 24.0.7-0ubuntu2~22.04.1 amd64 Linux container runtime
ii python3-docker 5.0.3-1 all Python 3 wrapper to access docker.io's control socket
ii python3-dockerpty 0.4.1-2 all Pseudo-tty handler for docker Python client (Python 3.x)
ii wmdocker 1.5-2 amd64 System tray for KDE3/GNOME2 docklet applications
貌似希望来了,又安装了docker,又安装了docker.io。
然后就卸载docker,很简单,成功。但是docker ps依然看不到容器列表。
又尝试apt remove wmdocker,但是这个wmdocker怎么都写在不掉。
重启Ubuntu之后,docker ps依然看不到容器列表。
继续Google,执行命令:
snap list
结果如下:
Name Version Rev Tracking Publisher Notes
core20 20240911 2434 latest/stable canonical✓ base
core22 20241001 1663 latest/stable canonical✓ base
dive 0.12.0 20 latest/stable gruyaume -
docker 24.0.5 2932 latest/stable canonical✓ -
dotnet-sdk 8.0.403 252 latest/stable canonical✓ classic
lxd 5.0.3-80aeff7 29351 5.0/stable/… canonical✓ -
snapd 2.63 21759 latest/stable canonical✓ snapd
希望再次来临,竟然这里也安装了docker。
执行下边的命令:
snap remove docker
提示如下:
docker removed
这个时候重新启动docker服务,执行docker ps依然看不到容器列表。
但是reboot Ubuntu之后,用docker ps,看到了熟悉的容器列表。
后记
其实前前后后折腾了2个月,今天终于解决了,做个简单的记录。
黑夜里不停折腾的代码行者。