O subprocesso de pós-instalação do docker-ce nunca termina

O subprocesso de pós-instalação do docker-ce nunca termina

Tentei instalar docker-ceseguindo as instruções fornecidas na documentação oficial do Dockerusando o repositório. A instalação travou neste ponto:

Setting up docker-ce (17.09.0~ce-0~ubuntu) ...
insserv: warning: script 'K01postgresql-9.5' missing LSB tags and overrides
insserv: warning: script 'postgresql-9.5' missing LSB tags and overrides

Depois de esperar muito tempo interrompi o processo com sudo killall apt-get. Agora, sempre que tento usar um comando que usa o apt-get, ele dirá o seguinte:

E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

Quando executo esse comando, ele apenas começa a executar o comando original que nunca termina. Neste ponto, eu só quero resolver isso, mesmo sem conseguir rodar o Docker (eu só queria experimentar).

Eu já tentei a maioria das respostas para issopergunta relacionada. Não consigo nem usar sudo apt-get remove docker-ceporque estou com o mesmo problema.

Algumas informações sobre a instalação do docker:

docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor  preset: e
Drop-In: /etc/systemd/system/docker.service.d
       └─ubuntu.conf
Active: activating (start) since mié 2017-11-22 15:38:31 CST; 7min ago
 Docs: https://docs.docker.com
Main PID: 1431 (docker)
Tasks: 6
Memory: 18.4M
  CPU: 21ms
CGroup: /system.slice/docker.service
       └─1431 /usr/bin/docker -d -H fd://

docker-ce:
Installed: 17.09.0~ce-0~ubuntu
Candidate: 17.09.0~ce-0~ubuntu
Version table:
*** 17.09.0~ce-0~ubuntu 100
    100 /var/lib/dpkg/status

Estou executando o Ubuntu 16.04

Responder1

Parece que docker-ceestá travando no início do serviço:

 \_ apt install docker-ce
     \_ /usr/bin/dpkg --status-fd 64 --configure --pending
         \_ /bin/sh /var/lib/dpkg/info/docker-ce.postinst configure
             \_ /bin/sh /usr/sbin/invoke-rc.d docker start
                 \_ systemctl start docker.service
                     \_ /bin/systemd-tty-ask-password-agent --watch

O processo de matança systemctl start docker.servicedeve ser suficiente:

sudo kill -9 $(ps aux | grep "systemctl start docker.service" | head -n 1 | awk '{print $2}')

verifique os trabalhos do systemd:

sudo systemctl list-jobs
    JOB UNIT           TYPE  STATE  
2831057 docker.service start running

se algum trabalho do docker estiver em execução, elimine-o:

sudo systemctl kill docker.service

Certifique-se de verificar se você não tem nenhuma substituição definida:

/etc/systemd/system/docker.service.d/

por exemplo, substituindo o comando para (usado no 17.03lançamento):

ExecStart=/usr/bin/docker daemon

em vez de /usr/bin/dockerd. Antes de continuar, certifique-se de eliminar qualquer processo docker restante:

ps aux | grep "[d]ockerd"

pare o processo restante do daemon do Docker (se houver):

sudo kill -9 $(ps aux | grep "[d]ockerd" | head -n 1 | awk '{print $2}')

Se você estiver atualizando da versão anterior do docker ( docker.io, docker-engineetc.) ou apenas alterando o armazenamento de arquivos subjacente, é mais seguro excluir todos os dados do docker antes de instalar a nova versão.

sudo rm -rf /var/lib/docker
sudo apt install docker-ce

Para consertar uma instalação quebrada, basta executar sudo dpkg --configure -ae docker.serviceiniciar.

Responder2

Eu enfrentei o mesmo problema, aqui estão todas as etapas que executei para remover completamente o docker. Espero que ajude

Parando serviços docker

service docker stop

Removendo bloqueios, após instalação interrompida

rm /var/lib/dpkg/lock

Restaurando

dpkg --configure -a

Se o dpkg travar, pare o serviço docker em um terminal diferente

service docker stop 

Removendo todos os pacotes do Docker e limpando

apt-get remove docker docker-engine docker.io docker-ce
apt-get purge docker docker-engine docker.io docker-ce
apt-get autoremove
apt-get autoclean

Remova todos os arquivos relacionados ao docker

rm -rf /lib/systemd/system/docker.service
rm -rf /etc/docker
rm -rf /var/lib/docker
rm -rf /run/docker.sock
rm -rf /etc/systemd/system/docker.service.d

Opcional, atualizando pacotes

apt-get update / upgrade / dist-upgrade

Reiniciando

reboot

Responder3

Eu tive esse mesmo problema ontem. Eu reiniciei o servidor:

sudo reboot

e pacotes reconfigurados:

sudo dpkg --configure -a

E o problema foi resolvido.

Responder4

Eu tive exatamente o mesmo problema e resolvi da seguinte maneira (a origem do meu problema foi atualizar para o docker da versão mais antiga para a mais recente):

1.- Pare o serviço docker (que está tentando iniciar o comando daemon errado): systemctl stop docker.service

2.- Modifique a sintaxe de comando do docker daemon em (que mudou da versão antiga para a mais recente): /etc/systemd/system/docker.service.d/50-docker_dns.conf de: ExecStart=/usr/bin/docker daemon .. . para: ExecStart=/usr/bin/dockerd ...

3.- Reinicie o docker daemon para que a nova configuração seja carregada: systemctl start docker.service

informação relacionada