我知道我的问题可能过于笼统,但请稍等片刻:
我使用 ubuntu 18.04 LTS,并已在现代 thinkpad 上安装(使用https://docs.docker.com/engine/install/ubuntu/docker-ce
中描述的官方安装过程)。我的设置没什么好看的。
一两天前,我的系统在尝试关闭我的机器时挂起。然后,当我尝试使用 docker 时,守护进程没有响应,只是挂了。systemd 单元已加载,但尚未启动。我当时认为关机挂起是由于这个 docker 守护进程问题。
所以我尝试从系统中清除并重新安装 docker。
sudo apt-get purge docker-ce docker-ce-cli containerd.io
连这个命令都挂了。
所以我尝试通过以下方式手动解锁 dpkg:
sudo systemctl disable docker
pgrep -a apt
sudo kill -9 <apt process>
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
还删除了所有 docker 和 containerd 相关文件 + 禁用和删除了 systemd 单元:
sudo systemctl disable docker
sudo rm -rf /etc/docker
sudo rm -rf /run/containerd/containerd.sock
sudo rm -rf /usr/bin/dockerd
sudo rm -rf /lib/systemd/system/docker.service
sudo rm -rf /var/lib/docker-engine
sudo rm -rf /var/lib/docker
sudo rm -rf /var/run/docker/
sudo rm -rf /var/run/docker.pid
sudo rm -rf /var/run/docker.sock
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm -rf /var/lib/containerd
sudo rm -rf /opt/containerd
sudo systemctl daemon-reload
并重新启动,然后我终于可以成功运行 purge 命令:
sudo apt-get purge docker-ce docker-ce-cli containerd.io
然后,当我尝试重新安装 docker(再次使用官方文档方法,稳定通道)时,它在启用 systemd 服务时挂起:
...
Preparing to unpack .../5-docker-ce_5%3a19.03.8~3-0~ubuntu-bionic_amd64.deb ...
Unpacking docker-ce (5:19.03.8~3-0~ubuntu-bionic) ...
Setting up aufs-tools (1:4.9+20170918-1ubuntu1) ...
Setting up containerd.io (1.2.13-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
Setting up cgroupfs-mount (1.4) ...
Setting up docker-ce-cli (5:19.03.8~3-0~ubuntu-bionic) ...
Setting up pigz (2.4-1) ...
Setting up docker-ce (5:19.03.8~3-0~ubuntu-bionic) ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
我需要暂停(ctrl+z),然后如上所述再次清理所有内容。
我也尝试过apt clean
和/或apt autoclean
然后重新启动并重试,但到目前为止没有任何效果,安装时它仍然挂起。
我不确定您正在运行什么内核版本,但是我今天注意到了这个确切的问题,并注意到运行
docker ps
只是挂起计算机,并且像您一样,我无法在不终止进程并手动删除文件的情况下卸载或重新安装(尝试重新安装时)进度条甚至停止在 94% - 与您的屏幕截图完全相同)。我发现在所有出现此问题的服务器上,它们都运行内核5.3.0-52-generic(来自
linux-virtual-hwe-18.04
软件包)。linux-virtual
通过使用内核 4.15.0.100.90安装软件包并使用该内核重新启动来降级内核后, docker 安装/卸载成功。我还尝试在同一台服务器上从https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6.7/安装内核 5.6.7并成功重新安装 docker。所以,我的猜测是它与内核有关。我的解决方案只是安装一个较旧或较新的内核。