command: docker node update short: Update a node long: |- Update metadata about a node, such as its availability, labels, or roles. > [!NOTE] > This is a cluster management command, and must be executed on a swarm > manager node. To learn about managers and workers, refer to the > [Swarm mode section](/engine/swarm/) in the > documentation. usage: docker node update [OPTIONS] NODE pname: docker node plink: docker_node.yaml options: - option: availability value_type: string description: Availability of the node (`active`, `pause`, `drain`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: label-add value_type: list description: Add or update a node label (`key=value`) details_url: '#label-add' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: label-rm value_type: list description: Remove a node label if exists deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: role value_type: string description: Role of the node (`worker`, `manager`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false inherited_options: - option: help value_type: bool default_value: "false" description: Print usage deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false examples: |- ### Add label metadata to a node (--label-add) {#label-add} Add metadata to a swarm node using node labels. You can specify a node label as a key with an empty value: ``` bash $ docker node update --label-add foo worker1 ``` To add multiple labels to a node, pass the `--label-add` flag for each label: ```console $ docker node update --label-add foo --label-add bar worker1 ``` When you [create a service](/reference/cli/docker/service/create/), 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: ``` bash $ 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](/reference/cli/dockerd/). For more information about labels, refer to [apply custom metadata](/engine/userguide/labels-custom-metadata/). deprecated: false hidden: false min_api_version: "1.24" experimental: false experimentalcli: false kubernetes: false swarm: true