Home Explore Blog Models CI



docker

1st chunk of `content/manuals/engine/swarm/swarm-tutorial/rolling-update.md`
3a18513612d9999877787773a9991263f256972d17b1ef650000000100000a86
---
description: Apply rolling updates to a service on the swarm
keywords: tutorial, cluster management, swarm, service, rolling-update
title: Apply rolling updates to a service
weight: 70
notoc: true
---

In a previous step of the tutorial, you [scaled](scale-service.md) the number of
instances of a service. In this part of the tutorial, you deploy a service based
on the Redis 7.4.0 container tag. Then you upgrade the service to use the
Redis 7.4.1 container image using rolling updates.

1.  If you haven't already, open a terminal and ssh into the machine where you
    run your manager node. For example, the tutorial uses a machine named
    `manager1`.

2.  Deploy your Redis tag to the swarm and configure the swarm with a 10 second
    update delay. Note that the following example shows an older Redis tag:

    ```console
    $ docker service create \
      --replicas 3 \
      --name redis \
      --update-delay 10s \
      redis:7.4.0

    0u6a4s31ybk7yw2wyvtikmu50
    ```

    You configure the rolling update policy at service deployment time.

    The `--update-delay` flag configures the time delay between updates to a
    service task or sets of tasks. You can describe the time `T` as a
    combination of the number of seconds `Ts`, minutes `Tm`, or hours `Th`. So
    `10m30s` indicates a 10 minute 30 second delay.

    By default the scheduler updates 1 task at a time. You can pass the
    `--update-parallelism` flag to configure the maximum number of service tasks
    that the scheduler updates simultaneously.

    By default, when an update to an individual task returns a state of
    `RUNNING`, the scheduler schedules another task to update until all tasks
    are updated. If at any time during an update a task returns `FAILED`, the
    scheduler pauses the update. You can control the behavior using the
    `--update-failure-action` flag for `docker service create` or
    `docker service update`.

3.  Inspect the `redis` service:

    ```console
    $ docker service inspect --pretty redis

    ID:             0u6a4s31ybk7yw2wyvtikmu50
    Name:           redis
    Service Mode:   Replicated
     Replicas:      3
    Placement:
     Strategy:	    Spread
    UpdateConfig:
     Parallelism:   1
     Delay:         10s
    ContainerSpec:
     Image:         redis:7.4.0
    Resources:
    Endpoint Mode:  vip
    ```

4.  Now you can update the container image for `redis`. The swarm  manager
    applies the update to nodes according to the `UpdateConfig` policy:

    ```console
    $ docker service update --image redis:7.4.1 redis
    redis
    ```

    The scheduler applies rolling updates as follows by default:

    * Stop the first task.

Title: Applying Rolling Updates to a Service in Docker Swarm
Summary
This section guides you through deploying a Redis service with a specific tag (7.4.0) and then updating it to a newer tag (7.4.1) using rolling updates in Docker Swarm. It covers configuring the update delay, parallelism, and failure action during service creation and update. The example demonstrates inspecting the service configuration and updating the service image, highlighting how the scheduler applies rolling updates by default.