web-dev-qa-db-fra.com

Quelle est la différence entre Docker Service et Docker Container?

Quand utilisons-nous une commande docker service create et quand utilisons-nous une commande docker run?

32
Kunal Sehegal

En bref: Le service Docker est principalement utilisé lorsque vous avez configuré le nœud principal avec Docker swarm de sorte que les conteneurs docker s'exécutent dans un environnement distribué et puissent être facilement gérés.

Docker run: La commande docker run crée d'abord un calque de conteneur inscriptible sur l'image spécifiée, puis le démarre à l'aide de la commande spécifiée. 

Autrement dit, l'exécution de docker est équivalente à l'API/conteneurs/create then/conteneurs/(id)/start

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

Service Docker: Le service Docker sera l’image d’un microservice dans le contexte d’une application plus importante. Des exemples de services peuvent inclure un serveur HTTP, une base de données ou tout autre type de programme exécutable que vous souhaitez exécuter dans un environnement distribué.

Lorsque vous créez un service, vous spécifiez quelle image de conteneur utiliser et quelles commandes à exécuter dans les conteneurs en cours d'exécution. Vous définissez également des options pour le service, notamment:

  • le port où l'essaim rendra le service disponible en dehors de l'essaim
  • un réseau de recouvrement pour que le service se connecte à d'autres services de l'essaim
  • Limites et réservations de CPU et de mémoire
  • une politique de mise à jour progressive
  • le nombre de répliques de l'image à exécuter dans l'essaim

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

18
Viswesn

Vous voudrez peut-être lire " Le service Docker est la nouvelle exécution du menu fixe "

Selon ces diapositives, "docker service create" est comme une exécution de docker "évoluée". Vous devez créer un "service" si vous souhaitez déployer un conteneur sur Docker Swarm

9
Tristan

Les services Docker sont comme des "plans" pour les conteneurs. Vous pouvez par exemple définissez un simple opérateur en tant que service, puis adaptez ce service à 20 conteneurs pour passer rapidement en file d'attente. Ensuite, vous réduisez ce service à 3 conteneurs à nouveau. En outre, via Swarm, ces conteneurs pourraient être déployés sur différents nœuds de votre essaim.

Mais oui, je vous recommande également de lire la documentation, comme l'a suggéré @Tristan.

8
Wilhelm Uschtrin

Docker run démarrera un seul conteneur.

Avec le service Docker, vous gérez un groupe de conteneurs (à partir de la même image). Vous pouvez les mettre à l'échelle (démarrer plusieurs conteneurs) ou les mettre à jour.

7
Julian
  • docker run est utilisé pour créer un conteneur autonome
  • docker service create sert à créer des instances (appelées tâches s) de ce service s'exécutant dans un cluster (appelé swarm) d'ordinateurs (appelé noeuds). Ces tâches sont des conteneurs de cource, mais des non conteneurs autonomes. En un sens, un service sert de modèle lors de l'instanciation de tâches. 

Par exemple 

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

crée 3 tâches du service MY_SERVICE_NAME, basées sur l'image IMAGE: TAG.

Plus d'informations peuvent être trouvées ici

0
Teo Bebekis