Я знаю, что мой вопрос может быть слишком общим, но, пожалуйста, подождите немного:
Я использую ubuntu 18.04 LTS и установил docker-ce (используя официальную процедуру установки, описанную в https://docs.docker.com/engine/install/ubuntu/) на современном планшете Thinkpad. Ничего особенного в моей настройке.
День или два назад моя система зависла при попытке отключить мою машину. Затем, когда я попытался использовать докер, демон не отвечал, просто завис. Модуль systemd был загружен, но не запущен. В тот момент я предположил, что зависание при отключении питания было связано с этой проблемой демона докеров.
Поэтому я попытался очистить и переустановить докер из системы. sudo apt-get purge docker-ce docker-ce-cli containerd.io
Даже эта команда зависла.
Поэтому я попытался вручную разблокировать dpkg с помощью
sudo sysmtectl 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
и перезапустился, что позволило мне, наконец, успешно запустить команду очистки: sudo apt-get purge docker-ce docker-ce-cli containerd.io
Затем, когда я пытаюсь переустановить докер (снова используя официальный метод документации, стабильный канал), он зависает при включении службы 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), а затем снова очистить все, как описано выше.
Вот также скриншот того, как выглядит служба systemd, когда установка застряла:
Я тоже пытался сделать apt clean
и / или apt autoclean
затем перезагрузитесь и попробуйте еще раз, но пока ничего не работает, все равно зависает при установке.
Я не уверен, с какой версией ядра вы работаете, но сегодня я заметил именно эту проблему и заметил, что запущенный docker ps
просто повесил компьютер, и, как и вы, я не мог деинсталлировать или переустановить, не убивая процессы и не удаляя файлы вручную (при попытке переустановки индикатор выполнения даже остановился на 94% - точно как на вашем скриншоте).
Я обнаружил, что эта проблема возникла на всех серверах, они работали с ядром 5.3.0-52-общий (из linux-virtual-hwe-18.04
пакет).
После понижения версии ядра путем установки linux-virtual
пакет с ядром 4.15.0.100.90 и перезагрузка с этим ядром установка / удаление докера прошла успешно.
Я также пробовал установить ядро 5.6.7 из https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6.7/ на том же сервере и успешно переустановил докер. Итак, я предполагаю, что это связано с ядром. И моим решением было просто установить старое или новое ядро.