我知道我的问题可能过于笼统,但请稍等片刻:
我使用 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
然后重新启动并重试,但到目前为止没有任何效果,安装时它仍然挂起。