In der Praxis mache ich Folgendes, um einen Container zu starten :
docker run a8asd8f9asdf0
Wenn dies der Fall ist, was bewirkt:
docker start
machen?
Im Handbuch steht
Starten Sie einen oder mehrere gestoppte Container
execute?
In der Praxis mache ich Folgendes, um einen Container zu starten :
docker run a8asd8f9asdf0
Wenn dies der Fall ist, was bewirkt:
docker start
machen?
Im Handbuch steht
Starten Sie einen oder mehrere gestoppte Container
execute?
Antworten:
Dies ist eine sehr wichtige Frage und die Antwort ist sehr einfach, aber grundlegend:
docker run IMAGE_ID und nicht docker run CONTAINER_IDdocker stop CONTAINER_ID, können Sie denselben Container mit dem Befehl neu starten docker start CONTAINER_ID, und die Daten und Einstellungen sind identisch.docker rm container_id) immer verloren . Auf der anderen Seite überleben Volumendaten das Entfernen des Containers, sofern die -vOption nicht explizit in der Befehlszeile angegeben ist. Der Volume-Standort auf dem Host-System kann direkt überprüft werden. Siehe diesen Artikel
& am Ende der runKommandozeile benötigen ? Ich brauche es als Countinous (24 Stunden) Service
runführt ein Bild ausstartstartet einen Container .Der docker runArzt erwähnt:
Der
docker runBefehl erstellt zuerst eine beschreibbare Containerebene über dem angegebenen Bild und startet sie dann mit dem angegebenen Befehl.Das heißt, Andockfensters Lauf an die API entspricht
/containers/createdann/containers/(id)/start.
Sie führen keinen vorhandenen Container aus, sondern führen Docker aus (seit Docker 1.3) .
Sie können einen verlassenen Container neu starten .
-ium docker runeinen interaktiven Prozess? Ich meine, Docker Run benötigt ein Image, um einen Container auszuführen.
Erklärung mit einem Beispiel:
Angenommen, Sie haben ein Spielbild (ISO) auf Ihrem Computer.
Wenn Sie run(Ihr Image als virtuelles Laufwerk bereitstellen), wird ein virtuelles Laufwerk mit allen Spielinhalten auf dem virtuellen Laufwerk erstellt und die Spielinstallationsdatei wird automatisch gestartet. [Ausführen Ihres Docker-Images - Erstellen eines Containers und anschließendes Starten.]
Wenn Sie es jedoch stop(ähnlich wie Docker) stoppen, ist das virtuelle Laufwerk weiterhin vorhanden, stoppt jedoch alle Prozesse. [Da der Container existiert, bis er nicht gelöscht wird]
Und wenn Sie dies tun start(ähnlich wie beim Docker-Start), starten die Spieledateien vom virtuellen Laufwerk aus ihre Ausführung. [Starten des vorhandenen Containers]
In diesem Beispiel - Das Spiel-Image ist Ihr Docker-Image und das virtuelle Laufwerk ist Ihr Container.
Die Antwort von daniele3004 ist schon ziemlich gut.
Nur eine schnelle und schmutzige Formel für Leute wie ich, mischt runund startvon Zeit zu Zeit:
docker run [...]= docker pull [...]+docker start [...]
"...docker run is equivalent to the API /containers/create then /containers/(id)/start.(Quelle: docs.docker.com/engine/reference/commandline/run )
runDer Befehl erstellt einen Container aus dem Image und startet dann den Root-Prozess für diesen Container. Wenn Sie es mit run --rmFlag ausführen, sparen Sie sich die Mühe, den nutzlosen toten Container anschließend zu entfernen, und können die Existenz von docker startund docker removeinsgesamt ignorieren .
run Befehl macht ein paar verschiedene Dinge:
docker run --name dname image_name bash -c "whoami"
docker psbash -c "whoami". Wenn man docker run --name dname image_nameohne einen Befehl zum Ausführen des Containers läuft , wird der Container sofort gestoppt.docker removebevor man einen Container unter demselben Namen startet.Wie entferne ich einen Behälter, wenn er automatisch gestoppt wird? Fügen Sie--rmdemrunBefehleinFlag hinzu:
docker run --rm --name dname image_name bash -c "whoami"
Wie führe ich mehrere Befehle in einem einzigen Container aus? Indem verhindert wird, dass dieser Wurzelprozess stirbt. Dies kann erreicht werden, indem ein nutzloser Befehl beim Start mit dem--detachedFlag ausgeführt wird und dann "Ausführen" verwendet wird, um die tatsächlichen Befehle auszuführen:
docker run --rm -d --name dname image_name tail -f /dev/null
docker exec dname bash -c "whoami"
docker exec dname bash -c "echo 'Nnice'"
Warum brauchen wir docker stopdann? Um diesen verweilenden Container zu stoppen, den wir im vorherigen Snippet mit dem Endlosbefehl gestartet habentail -f /dev/null.