webentwicklung-frage-antwort-db.com.de

Was ist der Unterschied zwischen Docker Service und Docker Container?

Wann verwenden wir einen docker service create-Befehl und wann verwenden wir einen docker run-Befehl?

32
Kunal Sehegal

In Kürze: Der Docker-Dienst wird hauptsächlich verwendet, wenn Sie den Masterknoten mit Docker-Schwarm so konfiguriert haben, dass Docker-Container in einer verteilten Umgebung ausgeführt werden und leicht verwaltet werden können.

Docker run: Der Docker-Run-Befehl erstellt zunächst eine beschreibbare Containerebene über dem angegebenen Image und startet sie dann mit dem angegebenen Befehl. 

Das heißt, der Andocklauf entspricht der API/container/create then/container/(id)/start

source: https://docs.docker.com/engine/reference/commandline/run/#parent-command

Docker-Dienst: Der Docker-Dienst ist das Image für einen Microservice im Kontext einer größeren Anwendung. Beispiele für Dienste umfassen einen HTTP-Server, eine Datenbank oder ein beliebiges anderes ausführbares Programm, das Sie in einer verteilten Umgebung ausführen möchten.

Wenn Sie einen Dienst erstellen, geben Sie an, welches Containerimage verwendet werden soll und welche Befehle in laufenden Containern ausgeführt werden sollen. Sie definieren auch Optionen für den Service, einschließlich:

  • der Hafen, an dem der Schwarm den Dienst außerhalb des Schwarms verfügbar macht
  • ein Overlay-Netzwerk für den Dienst zum Herstellen einer Verbindung zu anderen Diensten im Schwarm
  • CPU- und Speichergrenzen und -reservierungen
  • eine fortlaufende Aktualisierungsrichtlinie
  • die Anzahl der Repliken des Bildes, die im Schwarm ausgeführt werden sollen

source: https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/#services-tasks-and-containers

18
Viswesn

Vielleicht möchten Sie lesen " Docker-Dienst ist der neue Docker-Lauf "

Laut diesen Folien ist "Docker Service Create" wie ein "weiterentwickelter" Dockerlauf. Sie müssen einen "Dienst" erstellen, wenn Sie einen Container in Docker Swarm bereitstellen möchten

9
Tristan

Docker-Dienste sind wie "Blaupausen" für Container. Sie können z. Definieren Sie einen einfachen Worker als Service, und skalieren Sie diesen Service dann auf 20 Container, um eine Warteschlange schnell durchlaufen zu können. Anschließend skalieren Sie diesen Service erneut auf 3 Container. Über Swarm können diese Container auch auf verschiedenen Knoten Ihres Swarms bereitgestellt werden.

Ja, ich empfehle auch, die Dokumentation zu lesen, genau wie @Tristan vorgeschlagen.

8

Andockfahrt startet einen einzelnen Container.

Mit dem Andockdienst verwalten Sie eine Gruppe von Containern (aus demselben Image). Sie können sie skalieren (mehrere Container starten) oder aktualisieren.

7
Julian
  • docker run wird zum Erstellen eines standalone -Containers verwendet
  • Der docker-Dienst create wird zum Erstellen von Instanzen (mit dem Namen task s) des Diensts verwendet, der in einem Cluster (mit dem Namen swarm) von Computern (mit dem Namen node s) ausgeführt wird. Diese Aufgaben sind Container von Cource, aber nicht Standalone-Container. In gewissem Sinne fungiert ein Dienst als Vorlage, wenn Aufgaben instanziiert werden. 

Zum Beispiel 

docker service create --name MY_SERVICE_NAME --replicas 3 IMAGE:TAG

erstellt 3 Aufgaben des Dienstes MY_SERVICE_NAME, der auf dem Image IMAGE: TAG basiert.

Weitere Informationen finden Sie hier

0
Teo Bebekis