docker - 无法在 WSL 上从 Ubuntu 卸载 Docker
问题描述
我正在尝试卸载 Docker,但总是收到错误消息。我已经在互联网上搜索但没有成功修复错误。我的印象是有一些损坏的软件包,但总的来说我对 Linux 很陌生。这是结果:
sudo apt-get purge -y docker-ce
1 ↵ Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
docker-ce*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 181 MB disk space will be freed.
(Reading database ... 44147 files and directories currently installed.)
Removing docker-ce (18.03.1~ce-0~ubuntu) ...
invoke-rc.d: could not determine current runlevel
* Stopping Docker: docker start-stop-daemon: warning: failed to kill 466: No such process
No process in pidfile '/var/run/docker-ssd.pid' found running; none killed.
invoke-rc.d: initscript docker, action "stop" failed.
dpkg: error processing package docker-ce (--purge):
subprocess installed pre-removal script returned error exit status 1
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
docker-ce
E: Sub-process /usr/bin/dpkg returned an error code (1)
我希望任何人都可以帮助我。:)
解决方案
我在尝试从 WSL 中删除 docker.io 时遇到了同样的错误,这显然是预装的。问题是预删除脚本失败,因为 docker 从未运行过,因此无法停止。
在我的情况下,我 sudo 编辑了 /var/lib/dpkg/info/docker.io.prerm 并用(它只是返回成功)替换/sbin/stop docker
(失败)。true
之后, apt remove docker.io 完美运行。
(我在这里找到了解决方案,这是 2013 年的一个老问题:docker can't be uninstalled if it never working (Ubuntu))
推荐阅读
- go - 为什么数据被推入通道但从未从接收者 goroutine 中读取?
- ios - 获取类消息的错误接收器“GMSCoordinateBounds”是在 xcode 上构建反应原生 ios 代码时的前向声明
- laravel - Laravel sortBy 多个值和多个键
- excel - 如果两个单元格匹配返回正确但如果两个单元格都为零则忽略?
- c++ - 包括没有函数的常量
- python - sum() 的字节总和
- java - RestAssured XmlPath 数组
- qt - 这是 Qt5 文档中的错误吗?
- r - 分组数据和多个变量的滚动平均值
- java - java中使用递归的数组中元素的最后索引。但是我怀疑这段代码不应该返回第一个索引吗?