Eu sei que minha pergunta pode ser muito genérica, mas por favor, tenha paciência comigo por um momento:
Eu uso o Ubuntu 18.04 LTS e docker-ce
instalei (usando o procedimento de instalação oficial descrito em https://docs.docker.com/engine/install/ubuntu/ ) em um thinkpad moderno. Nada extravagante sobre a minha configuração.
Um ou dois dias atrás, meu sistema travou ao tentar desligar minha máquina. Então, quando tentei usar o docker, o daemon não respondeu, apenas travou. A unidade systemd foi carregada, mas não foi iniciada. Eu assumi naquele ponto que o desligamento do poweroff era devido a esse problema do daemon do docker.
Então, tentei limpar e reinstalar o docker do sistema.
sudo apt-get purge docker-ce docker-ce-cli containerd.io
Mesmo este comando enforcado.
Então eu tentei desbloquear manualmente o dpkg por:
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
também excluiu todos os arquivos relacionados ao docker e ao containerd + unidade systemd desabilitada e removida:
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
e reiniciei, o que me permitiu finalmente executar o comando purge com sucesso:
sudo apt-get purge docker-ce docker-ce-cli containerd.io
Então, quando tento reinstalar o docker (usando novamente o método docs oficial, canal estável), ele trava ao habilitar o serviço 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.
que preciso suspender (ctrl+z) e depois limpar tudo novamente conforme descrito acima.
Aqui está também uma captura de tela sobre a aparência do serviço systemd enquanto a instalação está travada:
Eu também tentei fazer apt clean
e/ou apt autoclean
reiniciar e tentar novamente, mas nada funcionou até agora, ainda trava ao instalar.
Não tenho certeza de qual versão do kernel você está executando, mas notei esse problema exato hoje e notei que a execução
docker ps
apenas travou o computador e, como você, não consegui desinstalar ou reinstalar sem matar os processos e remover manualmente os arquivos (ao tentar reinstalar o barra de progresso parou em 94% - exatamente como na sua captura de tela).O que descobri foi que em todos os servidores surgiu esse problema, eles estavam rodando o kernel 5.3.0-52-generic (do
linux-virtual-hwe-18.04
pacote).Após fazer o downgrade do kernel instalando o
linux-virtual
pacote com o kernel 4.15.0.100.90 e reinicializando com esse kernel, a instalação/desinstalação do docker foi bem-sucedida.Eu também tentei instalar o kernel 5.6.7 de https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6.7/ no mesmo servidor e reinstalar o docker com sucesso. Então, meu palpite é que é algo relacionado ao kernel. E minha solução foi apenas instalar um kernel mais antigo ou mais recente.