Ich habe versucht, die Installation docker-ce
gemäß 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-ce
weil 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-ce
beim 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.service
sollte 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.03
der 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.io
oder docker-engine
nur 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 -a
und docker.service
es 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