|
| 1 | +Service |
| 2 | +--1 |
| 3 | +docker run -it alpine ping 172.31.15.233 |
| 4 | +docker service --help |
| 5 | + docker service create --name myservice -d alpine ping 172.31.15.233 |
| 6 | +docker service inspect <<service name>> | less |
| 7 | +docker service logs <<service name>> |
| 8 | + |
| 9 | + |
| 10 | +--2 |
| 11 | + docker service create --name myservice -d --replicas 4 alpine ping 172.31.15.233 |
| 12 | + docker service ps myservice |
| 13 | + remove containers on one of the worker node and find the status of the service |
| 14 | + |
| 15 | +--3 |
| 16 | + docker service create \ |
| 17 | +> --name=viz \ |
| 18 | +> --publish=8080:8080/tcp \ |
| 19 | +> --constraint=node.role==manager \ |
| 20 | +> --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \ |
| 21 | +> dockersamples/visualizer |
| 22 | + |
| 23 | +--4 |
| 24 | + docker service scale myservice=2 |
| 25 | + docker service scale myservice=5 |
| 26 | + docker service rm myservice |
| 27 | +--5 |
| 28 | + docker service --name webservice create -d -p 80:80 nginx |
| 29 | + now you can access it on any worker node |
| 30 | +--6 |
| 31 | + docker service create --name webservice -d --mode=global --publish=80:80 nginx |
| 32 | + remove a woker node and check the visualizer |
| 33 | + add it again you will find the one replica is created on the worker node |
| 34 | +--7 labels and constraint |
| 35 | + |
| 36 | + docker service create --name webservice -d --constraint="node.role==manager" --publish=80:80 nginx |
| 37 | + docker srevice scale webservice=2 |
| 38 | + Check the visualizer |
| 39 | + docker service create --name webservice -d --constraint="node.role==worker" --publish 80:80 nginx |
| 40 | + |
| 41 | + docker node update --label-add="webserver=true" worker01 |
| 42 | + docker service create --name webservice -d --constraint="node.labels.webserver==true" --publish 80:80 nginx |
| 43 | + if we create same label to worker02 will the load shifted to worker 02 or not ans is not because you have to se the labels upfront |
| 44 | + |
| 45 | + now create the labels on engine level |
| 46 | + |
| 47 | + goto worker node2 |
| 48 | + vi /etc/docker/daemon.json |
| 49 | + |
| 50 | +{ |
| 51 | + "labels": ["name=testserver"] |
| 52 | +} |
| 53 | + |
| 54 | +create service on label server |
| 55 | +docker service create --name webservice1 -d --constraint="engine.labels.name==testserver" --publish 84:80 nginx |
| 56 | + |
| 57 | +--8 node availbility |
| 58 | +docker node update --availability=pause worker02 |
| 59 | +now the new containers will not be creating on worker02 |
| 60 | +docker node update --availability=active worker02 |
| 61 | + |
| 62 | +docker node update --availability=drain worker02 # now the nodes are moved to other worker nodes or manager nodes |
| 63 | + |
| 64 | + |
| 65 | +~ |
| 66 | + |
| 67 | + |
0 commit comments