Ich habe eine Vanille-Installation von CoreOS (835.9.0) und der Docker-Daemon wird beim Start nicht gestartet. Es fängt erst an wenn ich in SSH bin und mache zB docker ps
.
Wie kann ich den Docker-Daemon beim Systemstart automatisch starten lassen?
Wenn ich den Docker-Daemon sage, meine ich, ps -ef | grep docker
zeigt keine Prozesse, bis ich es tuedocker ps
Das ist jetzt ein bisschen alt, aber ich habe damit begonnen, Cloud-Init zu verwenden, um dies auf allen neuen Servern zu tun. Ich habe ein gespeichertes Cloud-Init-Skript, das ich für alle meine Server verwende. Ein Teil davon enthält:
Dadurch wird der Docker-Dienst aktiviert und bei jedem Start zuerst gestartet.
quelle
Wie bereits in diesem Kommentar von Rob erläutert , ist der Docker Socket-aktiviert. Das bedeutet, dass der Deamon erst startet, wenn er aufgerufen wird. Die vorhandenen Antworten hier funktionieren, aber CoreOS empfiehlt einen anderen Ansatz.
Der empfohlene Weg, dies zu tun, besteht laut CoreOS-Dokumentation darin, einen Dienst für Ihre eigene App zu erstellen, für den wiederum der Docker-Dienst erforderlich ist:
/etc/systemd/system/myapp.service:
Und lassen Sie diesen Dienst stattdessen automatisch starten:
Der Beispielanwendungsfall besteht darin, den Container nach dem Start des Dienstes auf die neueste Version zu aktualisieren. Im erweiterten Beispiel wird der Dienst auch in etcd registriert. Weitere Hintergrundinformationen finden Sie in der CoreOS-Dokumentation .
quelle
Ich verwende Docker Swarm, daher habe ich keine spezielle App, für die systemd verantwortlich ist. Ich brauche nur Docker, um beim Booten zu starten. Dies ist die Lösung, die ich ausgearbeitet habe.
Setzen Sie dies
/etc/systemd/system/poke-docker.service
:Und dann
systemctl enable poke-docker
, um es so einzurichten, dass es bei jedem Systemstart gegen Ende der Startsequenz ausgelöst wird. Derdocker version
Befehl kommuniziert mit dem Docker-Dämon, löst den Socket aus und startet den Docker-Dienst selbst.Ich habe den
systemctl enable docker
Trick in der anderen Antwort ausprobiert , und obwohl es auf den ersten Blick funktionierte, hat es anscheinend eine donnernde Herdensituation verursacht, in der Docker anscheinend versucht hat, eine ganze Menge zu tun und kläglich versagt hat. Ich vermute, dass dies das in den Kommentaren erwähnte Verhalten "Blockieren der Boot-Kette" ist.quelle