root@manager:~# docker swarm init
root@manager:~# docker swarm init
Swarm initialized: current node (paulxq7r9czggtra5xu8006hk) is now a manager.
To add a worker to this swarm, run the following command:
**docker swarm join --token SWMTKN-1-2xztx445xtzsj98s3p6men855x9cz5y00kalg3xc3rm4go9g18-e9fxhbcrfg73l8sqonzdtxyhu 211.183.3.200:2377**
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
저 token이 있는 node만 manager의 관리 대상이 된다.
(init할 때마다 새로 발행됨)
root@worker1:~# docker swarm join --token SWMTKN-1-2xztx445xtzsj98s3p6men855x9cz5y00kalg3xc3rm4go9g18-e9fxhbcrfg73l8sqonzdtxyhu 211.183.3.200:2377
root@worker1:~# docker swarm join --token SWMTKN-1-2xztx445xtzsj98s3p6men855x9cz5y00kalg3xc3rm4go9g18-e9fxhbcrfg73l8sqonzdtxyhu 211.183.3.200:2377
This node joined a swarm as a worker.
root@worker2:~# docker swarm join --token SWMTKN-1-2xztx445xtzsj98s3p6men855x9cz5y00kalg3xc3rm4go9g18-e9fxhbcrfg73l8sqonzdtxyhu 211.183.3.200:2377
root@worker2:~# docker swarm join --token SWMTKN-1-2xztx445xtzsj98s3p6men855x9cz5y00kalg3xc3rm4go9g18-e9fxhbcrfg73l8sqonzdtxyhu 211.183.3.200:2377
This node joined a swarm as a worker.
root@manager:~# docker node ls
root@manager:~# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
paulxq7r9czggtra5xu8006hk * manager Ready Active Leader 20.10.21
x19neym6sw4hijutdxkgzjhd2 worker1 Ready Active 20.10.21
k4hmjn37x6wmwv5xnar2lkvm9 worker2 Ready Active 20.10.21
worker1과 worker2가 clustering되어 manager의 orchestration 대상이 된다.
join 해제는 docker swarm leave로 한다.
root@manager:~# docker network ls
root@manager:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
1b25c959ba21 bridge bridge local
5b52fc9edfc4 docker_gwbridge bridge local
0e1c0dbcab96 host host local
ji03bjprzpxy ingress overlay swarm
c109c70bf824 none null local
root@manager:~# docker node inspect worker1
출력
docker node rm worker1
지워짐
docker node promote worker1
worker1이 manager로 승격됨
root@manager:~# docker service create --replicas 2 -p 5555:80 --name web nginx
root@manager:~# docker service create --replicas 2 -p 5555:80 --name web nginx
aq2udr807dwwnv41onjccqz3c
overall progress: 2 out of 2 tasks
1/2: running
2/2: running
verify: Service converged
-service
컨테이너에서의 run과 비슷함
root@manager:~# docker service ls
root@manager:~# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
aq2udr807dww web replicated 2/2 nginx:latest *:5555->80/tcp
브라우저 접속: http://211.183.3.200:5555/

root@manager:~# docker service scale web=4
root@manager:~# docker service scale web=4
web scaled to 4
overall progress: 4 out of 4 tasks
1/4: running
2/4: running
3/4: running
4/4: running
verify: Service converged
2개는 이미 동작 중이므로 2개만 새로 prepare한다.
root@manager:~# docker login
root@worker1:~# docker login
root@worker2:~# docker login
root@manager:~# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to <https://hub.docker.com> to create one.
Username: beyondthemist
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
<https://docs.docker.com/engine/reference/commandline/login/#credentials-store>
Login Succeeded
로그인이 안 되어 있으면 traffic 제한이 생긴다. 이 경우 image를 못 받아 올 수 있으므로 안전빵으로 로그인하는 게 좋다.
root@manager:~# docker service rm web
root@manager:~# docker service ls
root@manager:~# docker service rm web
web
root@manager:~# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
root@manager:~# docker service create --name web --constraint node.rol1!=manager --replicas 4 nginx
root@manager:~# docker service create --name web **--constraint node.role!=manager** --replicas 4 nginx
ns3beibwav1f2trhhojvlurz8
overall progress: 4 out of 4 tasks
1/4: running
2/4: running
3/4: running
4/4: running
verify: Service converged
--constraint node.role!=manager
replica 생성 시 worker node에만 생기도록 한다.
정확히는 manager가 아닌 node에만 replica가 생성되도록 한다.
root@manager:~# docker service create --name gweb --mode global nginx
root@manager:~# docker service create --name gweb **--mode global** nginx
phti24w9zporupb5ti51882qh
overall progress: 3 out of 3 tasks
x19neym6sw4h: running
k4hmjn37x6wm: running
paulxq7r9czg: running
verify: Service converged
--mode global
replica
분산 배치
global
각 노드에 하나씩만 생성
알아서 node 개수만큼 생성된다.