advisory | hide_from_sitemap | description | keywords | title |
---|---|---|---|---|
swarm-standalone |
true |
Swarm rescheduling |
docker, swarm, clustering, rescheduling |
Swarm rescheduling |
You can set rescheduling policies with Docker Swarm. A rescheduling policy determines what the Swarm scheduler does for containers when the nodes they are running on fail.
You set the reschedule policy when you start a container. You can do this with
the reschedule
environment variable or the
com.docker.swarm.reschedule-policies
label. If you don't specify a policy, the
default rescheduling policy is off
which means that Swarm does not restart a
container when a node fails.
To set the on-node-failure
policy with a reschedule
environment variable:
$ docker run -d -e "reschedule:on-node-failure" redis
To set the same policy with a com.docker.swarm.reschedule-policies
label:
$ docker run -d -l 'com.docker.swarm.reschedule-policies=["on-node-failure"]' redis
You can use the docker logs
command to review the rescheduled container
actions. To do this, use the following command syntax:
docker logs SWARM_MANAGER_CONTAINER_ID
When a container is successfully rescheduled, it generates a message similar to the following:
Rescheduled container 2536adb23 from node-1 to node-2 as 2362901cb213da321
Container 2536adb23 was running, starting container 2362901cb213da321
If for some reason, the new container fails to start on the new node, the log contains:
Failed to start rescheduled container 2362901cb213da321