What is the difference between Docker Service and Docker Container?

前端 未结 5 2021
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-23 19:04

When do we use a docker service create command and when do we use a docker run command?

相关标签:
5条回答
  • 2020-12-23 19:11

    In short: Docker service is used mostly when you configured the master node with Docker swarm so that docker containers will run in a distributed environment and it can be easily managed.

    Docker run: The docker run command first creates a writeable container layer over the specified image, and then starts it using the specified command.

    That is, docker run is equivalent to the API /containers/create then /containers/(id)/start

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

    Docker service: Docker service will be the image for a microservice within the context of some larger application. Examples of services might include an HTTP server, a database, or any other type of executable program that you wish to run in a distributed environment.

    When you create a service, you specify which container image to use and which commands to execute inside running containers. You also define options for the service including:

    • the port where the swarm will make the service available outside the swarm
    • an overlay network for the service to connect to other services in the swarm
    • CPU and memory limits and reservations
    • a rolling update policy
    • the number of replicas of the image to run in the swarm

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

    0 讨论(0)
  • 2020-12-23 19:27

    Docker run will start a single container.

    With docker service you manage a group of containers (from the same image). You can scale them (start multiple containers) or update them.

    0 讨论(0)
  • 2020-12-23 19:27

    Docker services are like "blueprints" for containers. You can e.g. define a simple worker as a service, and then scale that service to 20 containers to go through a queue really quickly. Afterwards you scale that service down to 3 containers again. Also, via Swarm these containers could be deployed to different nodes of your swarm.

    But yeah, I also recommend reading the documentation, just like @Tristan suggested.

    0 讨论(0)
  • 2020-12-23 19:28

    You may want to read "docker service is the new docker run"

    According to these slides, "docker service create" is like an "evolved" docker run. You need to create a "service" if you want to deploy a container to Docker Swarm

    0 讨论(0)
  • 2020-12-23 19:33
    • docker run is used to create a standalone container
    • docker service create is used to create instances (called tasks) of that service running in a cluster (called swarm) of computers (called nodes). Those tasks are containers of cource, but not standalone containers. In a sense a service acts as a template when instantiating tasks.

    For example

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

    creates 3 tasks of the MY_SERVICE_NAME service, which is based on the IMAGE:TAG image.

    More information can be found here

    0 讨论(0)
提交回复
热议问题