-
Notifications
You must be signed in to change notification settings - Fork 112
Expand file tree
/
Copy pathdocker_swarm
More file actions
120 lines (62 loc) · 2.54 KB
/
docker_swarm
File metadata and controls
120 lines (62 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Initialize the swarm cluster
docker swarm init --advertise-addr <ip>
# To get the swarm token(in case if you missed that)
docker swarm join-token worker
# To add a worker node to the swarm
docker swarm join --token
# To list all nodes in the cluster
docker node ls
# To create a service
docker service create --name myrepservice --replicas 3 nginx
# To list all services
docker service ls
# List the tasks of one or more services
docker service ps <service name>
# To remove a service
docker service rm <service name>
# To Scale up service
docker service scale SERVICE=REPLICAS
OR
We can scale multiple service
docker service scale SERVICE=REPLICAS [SERVICE=REPLICAS...]
# Scaling service using update
docker service update --replicas 4 <service name>
# Swarm Global mode
$ docker service create --name myglobalservice --mode global nginx
# Draining a node
docker node update --availability drain <node id>
# To make that node active
docker node update --availability active < node id>
# Inspecting services
$ docker service inspect <service name> --pretty
# Inspecting node
$ docker node inspect <node id> --pretty
# Publishing port
$ docker service create --name mypublishport --replicas 3 -p 80:80 nginx
# Locking Swarm Cluster
docker swarm update --autolock=true
# Mount volume using Swarm
docker service create --name mytestvolservice --mount type=volume,source=mytestvol,target=/mytestvol nginx
# How to add label to specific node
docker node update --label-add region=us-west-2 <node id>
# To get the node id
docker node ls
# To verify it
docker node inspect <node id>
# Placement constraints
docker service create --name myserviceconstraint --constraint node.labels.region==us-west-2 replicas 3 nginx
https://docs.docker.com/engine/reference/commandline/service_create/
# To create your own custom overlay network
$ docker network create --driver overlay myoverlaynetwork
# Create service using overlay network
docker service create --name myoverlay --network myoverlaynetwork --replicas 3 nginx
# You can also encrypt data exchanged between containers on different nodes on the overlay network
$ docker network create --opt encrypted --driver overlay my-multi-host-network
# Creating Service using Template
$ docker service create --name mytemplateservice --hostname="{{.Node.Hostname}}-{{.Service.Name}}" nginx
# Swarm Manager
$ docker swarm join-token manager
# Manager Only Nodes
docker node update --availability drain <NODE>
# Recover from losing the quorum
docker swarm init --force-new-cluster --advertise-addr node01:2377