Swarm Mode

Introduction

  1. 도컀 μ‹œμŠ€ν…œ 정보 확인

    docker system info
  2. Swarm ν™œμ„±ν™”

    docker swarm init
  3. 도컀 μ‹œμŠ€ν…œ 정보 확인

    docker system info
  4. Node λͺ©λ‘ 확인

    docker node ls
  5. 호슀트의 호슀트 이름 확인

    hostname
  6. Service 생성

    docker service create --name nginx nginx 
  7. μƒμ„±λœ Service 확인

    docker service ls
  8. μƒμ„±λœ Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

    docker service ps nginx
  9. Swarm Node에 μƒμ„±λœ μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

    docker node ps
  10. ν˜ΈμŠ€νŠΈμ— μƒμ„±λœ μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

    docker container ls
  11. Service의 볡제본 갯수λ₯Ό 3개둜 μˆ˜μ •

    docker service update nginx --replicas=3
  12. Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

    docker service ps nginx
  13. 싀행쀑인 μ»¨ν…Œμ΄λ„ˆμ— μˆ˜μ • κ°€λŠ₯ν•œ μ„€μ • 확인

    docker container update --help
  14. μƒμ„±λœ Service에 μˆ˜μ • κ°€λŠ₯ν•œ μ„€μ • 확인

    docker service update --help
  15. μƒμ„±λœ Service의 상세 λ‚΄μš© 확인

    docker service inspect nginx
  16. μƒˆλ‘œμš΄ 터미널을 μ—΄κ³  Docker 이벀트 μˆ˜μ‹ 

    docker events
  17. κΈ°μ‘΄ ν„°λ―Έλ„λ‘œ λŒμ•„μ™€μ„œ Service의 이미지 νƒœκ·Έ λ³€κ²½

    docker service update nginx --image=nginx:alpine
  18. λ‹€λ₯Έ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ λ°œμƒν•œ 이벀트 확인

    docker events
  19. κΈ°μ‘΄ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ Service의 상세 λ‚΄μš© 확인

    docker service inspect nginx
  20. Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

    docker service ps nginx
  21. ν˜ΈμŠ€νŠΈμ— μƒμ„±λœ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆ 확인

    docker container ls -a
  22. 이전 λ²„μ „μœΌλ‘œ λ‘€λ°±

    docker service update nginx --rollback
  23. Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

    docker service ps nginx
  24. ν˜ΈμŠ€νŠΈμ— μƒμ„±λœ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆ 확인

    docker container ls -a
  25. Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ 쀑에 ν•œκ°œλ₯Ό μ‚­μ œ

    docker container rm --force $(docker container ls --filter name=^nginx -q -l)
  26. Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

    docker service ps nginx
  27. 호슀트의 8080 포트λ₯Ό Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ 80 ν¬νŠΈμ™€ 연동

    docker service update nginx --publish-add 8080:80
  28. Service에 정보 확인

    docker service ls
  29. Service에 μ†ν•˜λŠ” 각 μ»¨ν…Œμ΄λ„ˆλ³„ 포트 λ§΅ν•‘ 확인

    docker container ls --filter name=^nginx
  30. Service의 상세 λ‚΄μš© 확인

    docker service inspect nginx
  31. Service에 μ†ν•˜λŠ” 각 μ»¨ν…Œμ΄λ„ˆμ˜ IP μ£Όμ†Œ 확인

    docker container ls --filter name=^nginx -q | xargs -n 1 docker container inspect --format '{{ .Name }} {{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}' | sed 's#^/##';
  32. Network λͺ©λ‘ 확인

    docker network ls
  33. λ‘œμ»¬ν˜ΈμŠ€νŠΈμ— μ—°λ™λœ 포트λ₯Ό ν†΅ν•΄μ„œ Service둜 접근이 λ˜λŠ”μ§€ 확인

    curl localhost:8080
  34. DOCKER-INGRESS 규μΉ™ 확인

    sudo iptables -t nat -L DOCKER-INGRESS -n  | column -t
  35. λ‹€λ₯Έ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ Service 둜그 μˆ˜μ‹ 

    docker service logs nginx -n 0 -f
  36. κΈ°μ‘΄ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ λ‘œμ»¬ν˜ΈμŠ€νŠΈμ— μ—°λ™λœ 포트λ₯Ό ν†΅ν•΄μ„œ Service 호좜

    for i in `seq 1 20`; do curl localhost:8080; done
  37. λ‹€λ₯Έ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ λ‹€μˆ˜μ˜ μ»¨ν…Œμ΄λ„ˆλ‘œ λΆ€ν•˜ λΆ„μ‚°λ˜λŠ”μ§€ ν™•μΈν•˜κ³  Ctrl+Cλ₯Ό μž…λ ₯

  38. κΈ°μ‘΄ ν„°λ―Έλ„λ‘œ λŒμ•„μ™€μ„œ Service μˆ˜μ •

    docker service update nginx --reserve-memory 1.5gb 
  39. Service μ‚­μ œ

    docker service rm nginx
  40. Swarm λΉ„ν™œμ„±ν™” μ‹œλ„

    docker swarm leave
  41. Swarm λΉ„ν™œμ„±ν™”

    docker swarm leave --force
  42. 도컀 μ‹œμŠ€ν…œ 정보 확인

    docker system info

Swarm Cluster

  1. μ‹€μŠ΅ ν™˜κ²½ 생성

  2. μΈμŠ€ν„΄μŠ€ 정보 확인

  3. μƒˆλ‘œμš΄ 터미널을 μ—΄κ³  첫번째 μΈμŠ€ν„΄μŠ€μ— SSH μ—°κ²° - λ§€λ‹ˆμ € λ…Έλ“œλ‘œ μ‚¬μš©

  4. Swarm ν™œμ„±ν™”

  5. μƒˆλ‘œμš΄ 터미널을 μ—΄κ³  λ‘λ²ˆμ§Έ, μ„Έλ²ˆμ§Έ μΈμŠ€ν„΄μŠ€λ‘œ SSH μ ‘μ†ν•΄μ„œ ν΄λŸ¬μŠ€ν„° 쑰인 λͺ…λ Ήμ–΄ μ‹€ν–‰

  6. λ§€λ‹ˆμ € λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ Swarm λ…Έλ“œ λͺ©λ‘ 확인

  7. Service 생성

  8. μƒμ„±λœ Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

  9. λ§€λ‹ˆμ € λ…Έλ“œμ— 배포된 NGINX μ»¨ν…Œμ΄λ„ˆμ˜ 상세 λ‚΄μš© 확인

  10. λ§€λ‹ˆμ € λ…Έλ“œμ— μƒμ„±λœ Network λͺ©λ‘ 확인

  11. λ‘λ²ˆμ§Έ λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ ν•΄λ‹Ή λ…Έλ“œμ— 배포된 NGINX μ»¨ν…Œμ΄λ„ˆμ˜ 상세 λ‚΄μš© 확인

  12. ν•΄λ‹Ή λ…Έλ“œμ— μƒμ„±λœ Network λͺ©λ‘ 확인

  13. λ§€λ‹ˆμ € λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ Service μ‚­μ œ

  14. Overlay ν˜•μ‹μ˜ Network 생성

  15. Networkκ°€ 생성 λ˜μ—ˆλŠ”μ§€ 확인

  16. λ‹€λ₯Έ λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ Network λͺ©λ‘ 확인

  17. λ§€λ‹ˆμ € λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ Service 생성

  18. μƒμ„±λœ Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λͺ©λ‘ 확인

  19. λ§€λ‹ˆμ € λ…Έλ“œμ— 배포된 NGINX μ»¨ν…Œμ΄λ„ˆμ˜ 상세 λ‚΄μš© 확인

  20. λ‹€λ₯Έ λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ ν•΄λ‹Ή λ…Έλ“œμ— 배포된 NGINX μ»¨ν…Œμ΄λ„ˆμ˜ 상세 λ‚΄μš© 확인

  21. Network λͺ©λ‘ 확인

  22. λ§€λ‹ˆμ € λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ 이동

  23. 호슀트의 8080 포트λ₯Ό Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ 80 ν¬νŠΈμ™€ 연동

  24. λ‘œμ»¬ν˜ΈμŠ€νŠΈμ— μ—°λ™λœ 포트λ₯Ό ν†΅ν•΄μ„œ Service둜 접근이 λ˜λŠ”μ§€ 확인

  25. λ‘œμ»¬ν˜ΈμŠ€νŠΈμ— μ—°λ™λœ 포트λ₯Ό ν†΅ν•΄μ„œ Service 호좜

  26. Service 둜그 확인

  27. λ‹€λ₯Έ λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ ν•΄λ‹Ή λ…Έλ“œμ˜ 8080 포트λ₯Ό ν†΅ν•΄μ„œ Service둜 접근이 λ˜λŠ”μ§€ 확인

  28. λ§€λ‹ˆμ € λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ Service에 λΆ€μ—¬λœ 가상 IP 확인

  29. μƒˆλ‘œμš΄ Service 생성

  30. μƒμ„±λœ Service에 μ†ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆκ°€ μ–΄λ–€ λ…Έλ“œμ— 배포 λ˜μ—ˆλŠ”μ§€ 확인

  31. ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆκ°€ 배포된 λ…Έλ“œλ‘œ μ—°κ²°λœ ν„°λ―Έλ„λ‘œ 이동

  32. ν•΄λ‹Ή λ…Έλ“œμ— 배포된 NGINX μ»¨ν…Œμ΄λ„ˆμ˜ IP μ£Όμ†Œ 확인

  33. busybox μ»¨ν…Œμ΄λ„ˆλ‘œ bash ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰

  34. μ„œλΉ„μŠ€μ— λΆ€μ—¬λœ 가상 IP둜 NGINX μ»¨ν…Œμ΄λ„ˆμ— 접근이 λ˜λŠ”μ§€ 확인

  35. ν•΄λ‹Ή λ…Έλ“œμ— 배포된 NGINX μ»¨ν…Œμ΄λ„ˆμ˜ IP둜 접근이 λ˜λŠ”μ§€ 확인

  36. bash ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ

  37. λ§€λ‹ˆμ € λ…Έλ“œμ— μ—°κ²°λœ ν„°λ―Έλ„λ‘œ 이동

  38. busybox μ„œλΉ„μŠ€μ— NGINX μ„œλΉ„μŠ€κ°€ μ‚¬μš©ν•˜λŠ” overlay λ„€νŠΈμ›Œν¬ 연동

  39. μ»¨ν…Œμ΄λ„ˆκ°€ μ–΄λ–€ λ…Έλ“œμ— 배포 λ˜μ—ˆλŠ”μ§€ 확인

  40. busybox μ»¨ν…Œμ΄λ„ˆκ°€ 배포된 λ…Έλ“œλ‘œ μ—°κ²°λœ ν„°λ―Έλ„λ‘œ 이동

  41. busybox μ»¨ν…Œμ΄λ„ˆλ‘œ bash ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰

  42. μ„œλΉ„μŠ€μ— λΆ€μ—¬λœ 가상 IP둜 NGINX μ»¨ν…Œμ΄λ„ˆμ— 접근이 λ˜λŠ”μ§€ 확인

  43. μœ„μ—μ„œ ν™•μΈν•œ NGINX μ»¨ν…Œμ΄λ„ˆμ˜ IP둜 접근이 λ˜λŠ”μ§€ 확인

  44. μ„œλΉ„μŠ€ μ΄λ¦„μœΌλ‘œ NGINX μ»¨ν…Œμ΄λ„ˆμ— 접근이 λ˜λŠ”μ§€ 확인

  45. μ„œλΉ„μŠ€ μ΄λ¦„μœΌλ‘œ 도메인 μ£Όμ†Œ 검색 μ‹œλ„

  46. bash ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ

  47. Cloud9에 μ—°κ²°λœ ν„°λ―Έλ„λ‘œ μ΄λ™ν•΄μ„œ λ¦¬μ†ŒμŠ€ μ‚­μ œ

Last updated