Der Unterprozess von docker-ce nach der Installation wird nie beendet

Der Unterprozess von docker-ce nach der Installation wird nie beendet

Ich habe versucht, die Installation docker-cegemäß den Anweisungen in der offiziellen Docker-Dokumentation durchzuführenVerwenden des Repositorys. Die Installation blieb an diesem Punkt hängen:

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

Nachdem ich sehr lange gewartet hatte, unterbrach ich den Vorgang mit sudo killall apt-get. Wenn ich jetzt versuche, einen Befehl zu verwenden, der apt-get verwendet, wird Folgendes angezeigt:

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

Wenn ich diesen Befehl ausführe, wird einfach der ursprüngliche Befehl ausgeführt, der nie beendet wird. An diesem Punkt möchte ich das Problem einfach lösen, ohne Docker überhaupt ausführen zu können (ich wollte es nur ausprobieren).

Ich habe bereits die meisten Antworten dazu ausprobiertVerwandte Frage. Ich kann es nicht einmal verwenden, sudo apt-get remove docker-ceweil ich auf dasselbe Problem stoße.

Einige Informationen zur Docker-Installation:

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

Ich verwende Ubuntu 16.04

Antwort1

Es scheint, dass es docker-cebeim Starten des Dienstes hängen bleibt:

 \_ 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

Der Tötungsvorgang systemctl start docker.servicesollte ausreichen:

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

Überprüfen Sie die Systemd-Jobs:

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

wenn ein Docker-Job ausgeführt wird, beenden Sie ihn:

sudo systemctl kill docker.service

Stellen Sie sicher, dass Sie keine Außerkraftsetzungen definiert haben:

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

zB Überschreiben des Befehls für (wird in 17.03der Version verwendet):

ExecStart=/usr/bin/docker daemon

anstelle von /usr/bin/dockerd. Bevor Sie fortfahren, beenden Sie unbedingt alle verbleibenden Docker-Prozesse:

ps aux | grep "[d]ockerd"

Stoppen Sie den verbleibenden Docker-Daemon-Prozess (sofern vorhanden):

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

Wenn Sie eine Aktualisierung von einer früheren Docker-Version ( usw.) durchführen docker.iooder docker-enginenur den zugrunde liegenden Dateispeicher ändern, ist es sicherer, vor der Installation der neuen Version alle Docker-Daten zu löschen.

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

Um eine fehlerhafte Installation zu reparieren, führen Sie es einfach aus sudo dpkg --configure -aund docker.servicees sollte starten.

Antwort2

Ich hatte das gleiche Problem. Hier sind alle Schritte, die ich unternommen habe, um Docker vollständig zu entfernen. Ich hoffe, es hilft

Stoppen von Docker-Diensten

service docker stop

Sperren entfernen, nach unterbrochener Installation

rm /var/lib/dpkg/lock

Wiederherstellen

dpkg --configure -a

Wenn dpkg hängen bleibt, stoppen Sie den Docker-Dienst von einem anderen Terminal aus

service docker stop 

Entfernen aller Docker-Pakete und Bereinigen

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

Entfernen Sie alle Docker-bezogenen Dateien

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

Optional: Pakete aktualisieren

apt-get update / upgrade / dist-upgrade

Neustart

reboot

Antwort3

Ich hatte gestern dasselbe Problem. Ich habe einen Serverneustart durchgeführt:

sudo reboot

und neu konfigurierte Pakete:

sudo dpkg --configure -a

Und das Problem wurde gelöst.

Antwort4

Ich hatte genau das gleiche Problem und habe es einfach wie folgt gelöst (der Ursprung meines Problems war ein Update von einer älteren Docker-Version auf die neueste):

1.- Stoppen Sie den Docker-Dienst (der versucht, mit dem falschen Daemon-Befehl zu starten): systemctl stop docker.service

2.- Ändern Sie die Befehlssyntax des Docker-Daemons in (die von der alten zur neuesten Version geändert wurde): /etc/systemd/system/docker.service.d/50-docker_dns.conf von: ExecStart=/usr/bin/docker daemon ... in: ExecStart=/usr/bin/dockerd ...

3.- Starten Sie den Docker-Daemon neu, damit die neue Konfiguration geladen wird: systemctl start docker.service

verwandte Informationen