Was ist der Unterschied zwischen t und d im Ausführungsbefehl in Docker?

WBOY
Freigeben: 2022-01-28 15:38:18
Original
8203 Leute haben es durchsucht

In Docker wird der Befehl „run“ verwendet, um einen neuen Container zu erstellen und einen Befehl auszuführen. Durch Festlegen des Parameters „-t“ kann dem Container ein Pseudo-Eingabeterminal zugewiesen werden, und durch Festlegen des Parameters „-d“ wird der Container ausgeführt den Hintergrund und gibt die Container-ID zurück.

Was ist der Unterschied zwischen t und d im Ausführungsbefehl in Docker?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-1.13.1-Version, Dell G3-Computer.

Was ist der Unterschied zwischen t und d im Befehl „run“ in Docker?

docker run: Erstellen Sie einen neuen Container und führen Sie einen Befehl aus.

Syntax

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Nach dem Login kopieren

OPTIONS-Beschreibung:

  • -a stdin: Geben Sie den Standard an Eingabe- und Ausgabeinhaltstyp, optional STDIN/STDOUT/STDERR;

  • -d: Führen Sie den Container im Hintergrund aus und geben Sie die Container-ID zurück.

  • -i: Führen Sie den Container im interaktiven Modus aus, der normalerweise zusammen mit verwendet wird -t;

  • -P: Zufällige Portzuordnung, der interne Port des Containers wird zufällig dem Port des Hosts zugeordnet

  • -p: Portzuordnung angeben, das Format ist: Host (Host)-Port: Container-Port

  • -t: Ordnen Sie den Container neu zu. Weisen Sie ein Pseudo-Eingabeterminal zu, das normalerweise mit -i verwendet wird.

  • --name="nginx-lb": Geben Sie einen Namen für den Container an 8.8.8.8: Geben Sie den vom Container verwendeten DNS-Server an. Der Standardwert stimmt mit dem Host überein.

  • --dns-search example.com: Gibt den DNS-Suchdomänennamen des Containers an. Der Standardwert stimmt mit dem Host überein.

  • -h „mars“: Gibt den Hostnamen des Containers an;

  • - e username="ritchie": Umgebungsvariablen festlegen;

  • --env-file=[]: Umgebungsvariablen auslesen die angegebene Datei;

  • --cpuset="0-2" oder --cpuset= "0,1,2": Binden Sie den Container zur Ausführung an die angegebene CPU;

  • -m: Legen Sie das Maximum fest Speichernutzung des Containers;

  • --net="bridge": Geben Sie den Netzwerkverbindungstyp des Containers an, unterstützte Bridge/Host/Keine/Container: vier Typen; einen Link zu einem anderen Container hinzufügen;

  • --expose=[]: Öffnen Sie einen Port oder eine Gruppe von Ports; Ich möchte einen Spiegel im Hintergrund ausführen“, als ich den folgenden Befehl ausführte

    docker run -d --name server somebody:dockerfile
    Nach dem Login kopieren
  • Ich habe über Docker PS überprüft, ob der Vorgang erfolgreich war, habe aber festgestellt, dass er nicht erfolgreich ausgeführt wurde. Wie ist die Situation? ? Ist es nicht notwendig, den Parameter -d zu verwenden, um im Hintergrund ausgeführt zu werden? Tatsächlich liegt der Hauptgrund darin, dass diesem Image am Ende möglicherweise CMD hinzugefügt wurde, z. B.
  • CMD ["/bin/bash"]
    Nach dem Login kopieren

    , was bedeutet, dass der von diesem Image erstellte Container zuerst /bin/bash ausführt, wenn Sie es im Hintergrund ausführen dass die Shell bei Ausführung im Hintergrund (-d) sofort beendet wird. Wenn der Befehl also nicht im Vordergrund ausgeführt wird, stoppt der Container sofort

  • Problemumgehung
  • Geben Sie ein Pseudo-„tty n“ für -d über -i oder -t an

    docker run -i -d images:tags
    docker run -t -d images:tags
    docker run -itd images:tags
    Nach dem Login kopieren
  • Fügen Sie tail -f /dev/null hinzu Befehl
  • Auf diese Weise stoppt der Container nicht, selbst wenn der Hauptbefehl im Hintergrund ausgeführt wird, da der Endbefehl weiterhin im Vordergrund ausgeführt wird.

    docker run -d centos tail -f /dev/null
    Nach dem Login kopieren
  • Dasselbe gilt für die andere Situation (Betreten des Containers) empfiehlt offiziell die Verwendung von -i und -t, damit er sich wie eine Shell verhält.
docker run -i -t <images:tags>
Nach dem Login kopieren

Empfohlenes Lernen: „

Docker-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen t und d im Ausführungsbefehl in Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage