Quand utilisons-nous une commande docker service create
et quand utilisons-nous une commande docker run
?
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:
source: https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/#services-tasks-and-containers
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
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.
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.
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