2015-07-22 13 views
19

Ich erstelle ein Docker-Image mit einer Dockerfile. Ich möchte einige Skripts ausführen, während ich den Andock-Container starte. Zur Zeit habe ich ein Shell-Skript alle notwendigen ProzesseBefehle zum Ausführen des Hintergrundprozesses in Docker CMD

CMD [ „sh“, „start.sh“]

Ich würde ausführen möchte einen Shell-Befehl mit einem Prozess läuft im Hintergrund ausführen

Beispiel

CMD [ "sh", "c", "mongod --dbpath/test &"]

+2

Sie können die Behälter als Hintergrundprozess starten 'Docker run -d mit {image}' es, dass Was du meintest? – nottinhill

+1

Docker Mantra ist es, einen Prozess zu starten, auch wenn Sie mehrere mit Supervisor (siehe http://docs.docker.com/articles/using_supervisord/), s6, daemontools oder so laufen können. Warum möchten Sie Ihren Prozess im Hintergrund? – user2915097

+0

Hallo Ich möchte einen Prozess in Docker Container als Hintergrundprozess starten. Also ich erwähne das gleiche in einer Shell-Skriptdatei und erstelle ein Docker-Image. Wenn ich also das Docker-Image ausführe, läuft der Prozess wie erwartet. Aber ich wollte statt einer separaten Shell-Skript-Datei kann ich es in der Docker-Datei mit CMD-Befehl in Dockerfile tun –

Antwort

18

Neben den Kommentaren auf Ihrem Frage, die schon ein paar Dinge über Docker Best Practices Sie einen Hintergrund ohnehin beginnen wies darauf hin, könnten Prozess aus Ihrem start.sh Skript und halten, dass start.sh Skript selbst in Vordergrund mit dem nohup Befehl und das Ampersand (&). Ich versuche es mit mongod aber so etwas wie die folgenden in Ihrem start.sh Skript funktionieren könnte:

#!/bin/sh 
... 
nohup sh -c mongod --dbpath /test & 
... 
Verwandte Themen