refactor
This commit is contained in:
parent
213edaf1d3
commit
fd30635cab
1 changed files with 149 additions and 1 deletions
|
@ -4,4 +4,152 @@ source: https://docs.docker.com/engine/swarm
|
|||
---
|
||||
|
||||
# Docker Swarm
|
||||
#wip
|
||||
Docker Swarm is a native clustering and orchestration solution for [Docker](Docker.md). It enables the creation and management of a swarm of Docker nodes, turning them into a single, virtual [Docker](Docker.md) host. Docker Swarm allows you to deploy and manage containerized applications across a cluster of machines, providing high availability, scalability, and ease of use.
|
||||
|
||||
## Getting started
|
||||
|
||||
1. Initialize a Swarm on a manager node:
|
||||
|
||||
```bash
|
||||
docker swarm init
|
||||
```
|
||||
|
||||
2. Join additional nodes to the Swarm:
|
||||
```bash
|
||||
docker swarm join --token <token> <manager-ip>
|
||||
```
|
||||
|
||||
3. Deploy a service
|
||||
Here's an example [Docker Compose](Docker%20Compose.md) file for a simple web service:
|
||||
```yml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
web:
|
||||
image: nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
deploy:
|
||||
replicas: 3
|
||||
```
|
||||
|
||||
Deploy this service using:
|
||||
```bash
|
||||
docker stack deploy -c docker-compose.yml myapp
|
||||
```
|
||||
|
||||
## `docker swarm`
|
||||
Manage Swarm
|
||||
|
||||
### `docker swarm ca`
|
||||
Display and rotate the root CA
|
||||
Usage:
|
||||
```sh
|
||||
# Display Cert
|
||||
docker swarm ca
|
||||
|
||||
# Rotate cert
|
||||
docker swarm ca --rotate
|
||||
```
|
||||
|
||||
### `docker swarm init`
|
||||
Initialize a swarm
|
||||
Usage: `docker swarm init --advertise-addr IP`
|
||||
|
||||
### `docker swarm join-token`
|
||||
Manage join tokens
|
||||
Usage: `docker swarm join-token [--rotate] (worker|manager)`
|
||||
|
||||
### `docker swarm join`
|
||||
Join a swarm as a node and/or manager
|
||||
Usage: `docker swarm join [--token token] HOST:PORT`
|
||||
|
||||
### `docker swarm leave`
|
||||
Leave the swarm
|
||||
Usage: `docker swarm leave [-f, --force]`
|
||||
|
||||
## `docker node`
|
||||
Manage Swarm nodes
|
||||
|
||||
### `docker node demote`
|
||||
Demote one or more nodes from manager in the swarm
|
||||
Usage: `docker node demote NODE [NODE...]`
|
||||
|
||||
### `docker node ls`
|
||||
List nodes in the swarm
|
||||
Usage: `docker node ls [--format json] [-f, --filter FILTER=VALUE]`
|
||||
|
||||
The currently supported filters are:
|
||||
- `id`
|
||||
- `label`
|
||||
- `node.label`
|
||||
- `membership`
|
||||
- `name`
|
||||
- `role`
|
||||
|
||||
### `docker node promote`
|
||||
Promote one or more nodes to manager in the swarm
|
||||
Usage: `docker node promote NODE [NODE...]`
|
||||
|
||||
### `docker node ps`
|
||||
List tasks running on one or more nodes, defaults to current node
|
||||
Usage: `docker node ps [--format json] [NODE...]`
|
||||
|
||||
### `docker node rm`
|
||||
Remove one or more nodes from the swarm
|
||||
Usage: `docker node rm [-f, --force] NODE [NODE...]`
|
||||
|
||||
### `docker node update`
|
||||
Update metadata about a node, such as its availability, labels, or roles.
|
||||
Usage: `docker node update [OPTIONS] NODE`
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Description |
|
||||
| ----------------------- | ----------------------------------------------------- |
|
||||
| `--availability state` | Availability of the node (`active`, `pause`, `drain`) |
|
||||
| `--label-add key=value` | Add or update a node label |
|
||||
| `--label-rm key` | Remove a node label if exists |
|
||||
| `--role role` | Role of the node (`worker`, `manager`) |
|
||||
|
||||
## `docker service`
|
||||
These commands apply to services and are almost identical to container commands.
|
||||
```shell
|
||||
docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
|
||||
docker service logs [OPTIONS] SERVICE|TASK
|
||||
docker service ls [OPTIONS]
|
||||
docker service ps [OPTIONS] SERVICE [SERVICE...]
|
||||
docker service rm SERVICE [SERVICE...]
|
||||
docker service scale SERVICE=REPLICAS [SERVICE=REPLICAS...]
|
||||
```
|
||||
|
||||
## `docker stack`
|
||||
Manage Swarm stacks. This command works on a swarm orchestrator.
|
||||
|
||||
### `docker stack deploy`
|
||||
Deploy a new stack or update an existing stack
|
||||
Usage: `docker stack deploy [OPTIONS] STACK`
|
||||
|
||||
#### Options
|
||||
|
||||
| Option | Description |
|
||||
| ------------------------- | ---------------------------------------------------- |
|
||||
| `-c, --compose-file file` | Path to a Compose file, or `-` to read from stdin |
|
||||
| `--prune` | Prune services that are no longer referenced |
|
||||
| `--with-registry-auth` | Send registry authentication details to Swarm agents |
|
||||
|
||||
### `docker stack ls`
|
||||
List stacks
|
||||
Usage: `docker stack ls [--format json]`
|
||||
|
||||
### `docker stack ps`
|
||||
List the tasks in the stack
|
||||
Usage: `docker stack ps [--format json]`
|
||||
|
||||
### `docker stack rm`
|
||||
Remove one or more stacks
|
||||
Usage: `docker stack rm STACK [STACK...]`
|
||||
|
||||
### `docker stack services`
|
||||
List the services in the stack
|
||||
Usage: `docker stack services [--format json] STACK`
|
||||
|
|
Loading…
Reference in a new issue