2016-07-14 6 views
1

Soweit ich weiß, dass Docker-Container kein Init-System haben, führen sie nur das aus, was im CMD-Teil der Docker-Datei angegeben ist.Was ist/usr/sbin/service unter einem Docker-Container?

Noch, (zum Beispiel in FROM ubuntu:16.04) wenn ich mache /usr/sbin/service --status-all bekomme ich eine Liste von Diensten, wie in einem echten Ubuntu-System.

Was machen diese Dienste? Ist es nur ein Überbleibsel und sie tun eigentlich gar nichts?

Antwort

1

Upstart/service sucht gerade in /etc/init.d, die von den Paket-Installern aufgefüllt wird. Docker ändert diese nicht. Sie können den Prozess manuell mit dem Befehl service starten, aber ohne das Ausführen von Init wird das Betriebssystem nicht alle typischen Prozesse generieren. Und wenn Sie einen Prozess erstellt haben, müssen Sie Ihre pid 1 weiterhin ausführen, damit der Container nicht beendet wird. Der typische Entwurf eines Containers besteht darin, nur eine einzige Anwendung auszuführen, die im Vordergrund ausgeführt werden muss, wobei Upstart/service und init nicht verwendet werden.