docker node update

Estimated reading time: 2 minutes


Update a node

API 1.24+  The client and daemon API must both be at least 1.24 to use this command. Use the docker version command on the client to check your client and daemon API versions.


docker node update [OPTIONS] NODE


Name, shorthandDefaultDescription
--availabilityAvailability of the node (“active”|”pause”|”drain”)
--label-addAdd or update a node label (key=value)
--label-rmRemove a node label if exists
--roleRole of the node (“worker”|”manager”)

Parent command

docker nodeManage Swarm nodes
docker node demoteDemote one or more nodes from manager in the swarm
docker node inspectDisplay detailed information on one or more nodes
docker node lsList nodes in the swarm
docker node promotePromote one or more nodes to manager in the swarm
docker node psList tasks running on one or more nodes, defaults to current node
docker node rmRemove one or more nodes from the swarm
docker node updateUpdate a node

Extended description

Update metadata about a node, such as its availability, labels, or roles.


Add label metadata to a node

Add metadata to a swarm node using node labels. You can specify a node label as a key with an empty value:

$ docker node update --label-add foo worker1

To add multiple labels to a node, pass the --label-add flag for each label:

$ docker node update --label-add foo --label-add bar worker1

When you create a service, you can use node labels as a constraint. A constraint limits the nodes where the scheduler deploys tasks for a service.

For example, to add a type label to identify nodes where the scheduler should deploy message queue service tasks:

$ docker node update --label-add type=queue worker1

The labels you set for nodes using docker node update apply only to the node entity within the swarm. Do not confuse them with the docker daemon labels for dockerd.

For more information about labels, refer to apply custom metadata.