2016-06-07 17:08:36 -07:00
|
|
|
<!--[metadata]>
|
|
|
|
+++
|
2016-06-15 13:26:13 -07:00
|
|
|
title = "Add nodes to the swarm"
|
|
|
|
description = "Add nodes to the swarm"
|
2016-06-07 17:08:36 -07:00
|
|
|
keywords = ["tutorial, cluster management, swarm"]
|
2016-06-16 11:33:12 +00:00
|
|
|
advisory = "rc"
|
2016-06-07 17:08:36 -07:00
|
|
|
[menu.main]
|
|
|
|
identifier="add-nodes"
|
|
|
|
parent="swarm-tutorial"
|
|
|
|
weight=13
|
|
|
|
+++
|
|
|
|
<![end-metadata]-->
|
|
|
|
|
2016-06-15 13:26:13 -07:00
|
|
|
# Add nodes to the swarm
|
2016-06-07 17:08:36 -07:00
|
|
|
|
2016-06-15 13:26:13 -07:00
|
|
|
Once you've [created a swarm](create-swarm.md) with a manager node, you're ready
|
2016-06-07 17:08:36 -07:00
|
|
|
to add worker nodes.
|
|
|
|
|
|
|
|
1. Open a terminal and ssh into the machine where you want to run a worker node.
|
|
|
|
This tutorial uses the name `worker1`.
|
|
|
|
|
2016-06-14 16:29:10 -07:00
|
|
|
2. Run the following command to create a worker node joined to
|
2016-06-15 13:26:13 -07:00
|
|
|
the existing swarm:
|
2016-06-14 16:29:10 -07:00
|
|
|
|
|
|
|
```
|
2016-07-05 15:39:26 -07:00
|
|
|
docker swarm join --secret <SECRET> <MANAGER-IP>:<PORT>
|
2016-06-14 16:29:10 -07:00
|
|
|
```
|
|
|
|
|
2016-07-05 15:39:26 -07:00
|
|
|
Replace `<SECRET>` with the secret that was printed by `docker swarm init` in the
|
|
|
|
previous step. Replace `<MANAGER-IP>` with the address of the manager node
|
|
|
|
and `<PORT>` with the port where the manager listens.
|
2016-06-07 17:08:36 -07:00
|
|
|
|
2016-06-15 13:26:13 -07:00
|
|
|
In the tutorial, the following command joins `worker1` to the swarm on `manager1`:
|
2016-06-07 17:08:36 -07:00
|
|
|
|
|
|
|
```
|
2016-07-05 15:39:26 -07:00
|
|
|
$ docker swarm join --secret 4ao565v9jsuogtq5t8s379ulb 192.168.99.100:2377
|
2016-06-07 17:08:36 -07:00
|
|
|
|
|
|
|
This node joined a Swarm as a worker.
|
|
|
|
```
|
|
|
|
|
|
|
|
3. Open a terminal and ssh into the machine where you want to run a second
|
|
|
|
worker node. This tutorial uses the name `worker2`.
|
|
|
|
|
2016-07-05 15:39:26 -07:00
|
|
|
4. Run `docker swarm join --secret <SECRET> <MANAGER-IP>:<PORT>` to create a worker node joined to
|
2016-06-14 16:29:10 -07:00
|
|
|
the existing Swarm.
|
|
|
|
|
2016-07-05 15:39:26 -07:00
|
|
|
Replace `<SECRET>` with the secret that was printed by `docker swarm init` in the
|
|
|
|
previous step. Replace `<MANAGER-IP>` with the address of the manager node
|
|
|
|
and `<PORT>` with the port where the manager listens.
|
2016-06-07 17:08:36 -07:00
|
|
|
|
|
|
|
5. Open a terminal and ssh into the machine where the manager node runs and run
|
|
|
|
the `docker node ls` command to see the worker nodes:
|
|
|
|
|
|
|
|
```bash
|
2016-07-06 20:23:53 -07:00
|
|
|
ID HOSTNAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS LEADER
|
2016-06-15 13:26:13 -07:00
|
|
|
03g1y59jwfg7cf99w4lt0f662 worker2 Accepted Ready Active
|
|
|
|
9j68exjopxe7wfl6yuxml7a7j worker1 Accepted Ready Active
|
|
|
|
dxn1zf6l61qsb1josjja83ngz * manager1 Accepted Ready Active Reachable Yes
|
2016-06-07 17:08:36 -07:00
|
|
|
```
|
|
|
|
|
2016-06-15 13:26:13 -07:00
|
|
|
The `MANAGER` column identifies the manager nodes in the swarm. The empty
|
2016-06-07 17:08:36 -07:00
|
|
|
status in this column for `worker1` and `worker2` identifies them as worker nodes.
|
|
|
|
|
|
|
|
Swarm management commands like `docker node ls` only work on manager nodes.
|
|
|
|
|
|
|
|
|
|
|
|
## What's next?
|
|
|
|
|
2016-06-15 13:26:13 -07:00
|
|
|
Now your swarm consists of a manager and two worker nodes. In the next step of
|
|
|
|
the tutorial, you [deploy a service](deploy-service.md) to the swarm.
|