Wo someImageName ist ein Bild. Wenn / bin / somebinary beendet wird, wird das Image nicht mehr ausgeführt.
Ich möchte einfach ein Image ausführen, ohne irgendwelche auszuführenden Binärdateien anzugeben. Stattdessen, Ich möchte einfach die Dienste (z. B. systemd / sysvinit) ausführen, die normalerweise innerhalb des Images-Betriebssystems ausgeführt werden.
Dies scheint die häufigste Sache zu sein, die jemand jemals mit Docker machen möchte, aber der Versuch, ein Image ohne Befehl auszuführen, kehrt zurück:
2014/02/05 14:49:19 Error: create: No command specified
Wie kann ich einen Docker-Container starten und ein vollständiges Betriebssystem ausführen, anstatt einen Befehl anzugeben?
Wie hier dokumentiert, führen Sie einfach aus /sbin/init als Befehl wie bei jedem anderen Unix, der vom Einzelbenutzer- in den Mehrbenutzermodus bootet.
Container können vollwertige Betriebssysteme sein, sie müssen es einfach nicht sein (VMs auch nicht, es ist nur komplizierter zu konfigurieren und zu verwalten).
Ich würde sagen, der springende Punkt von Docker besteht darin, Anwendungscontainer einfach zu gestalten, sodass Sie nur eine App konfigurieren müssen, nicht das gesamte Betriebssystem.
Docker ist ein System zur Verwaltung und Bereitstellung von Anwendung container, nicht Betriebssystem Behälter. Es scheint, als würden Sie das Ausführen eines Docker-Containers mit dem Booten eines Betriebssystems in Einklang bringen.
Ihre Docker-Container sollten Einzweckanwendungen mit sehr engem Anwendungsbereich sein, die mit einem einzigen Befehl gestartet werden können. Wenn Sie nach etwas Komplexerem suchen, ist Docker nicht die Lösung, nach der Sie suchen. In diesem Fall schauen Sie sich KVM, ESXi, OpenVZ an, LXD usw.
Wenn Sie nur suchen, wie Sie einen Standard angeben können CMD und ENTRYPOINT für Ihre Container können Sie das unter tun bauzeit verwenden einer Docker-Datei.
Führen Sie einfach so oft wie nötig dasselbe Bild aus. Neue Container werden erstellt und können dann gestartet und gestoppt werden, wobei jeder seine eigene Konfiguration speichert. Für Ihre Bequemlichkeit wäre es besser, jedem Ihrer Container einen Namen mit "--name" zu geben.
F. ich:
docker run --name MyContainer1 <ubuntu image>docker run --name MyContainer2 <ubuntu image>docker run --name MyContainer3 <ubuntu image>
Das war's.
$ docker psCONTAINER ID IMAGE CREATED STATUS NAMESa7e789711e62 67759a80360c 12 hours ago Up 2 minutes MyContainer187ae9c5c3f84 67759a80360c 12 hours ago Up About a minute MyContainer2c1524520d864 67759a80360c 12 hours ago Up About a minute MyContainer3
Danach haben Sie Ihre Container für immer erstellt und können sie wie VMs starten und stoppen.