[Docker] 4. Docker Swarm

Docker Swarm

이름 역할 대응하는 명령어
compose 여러 컨테이너로 구성된 도커 어플리케이션을 관리 (주로 단일 호스트) docker-compose
Swarm 클러스트 구축 및 관리(주로 멀티 호스트) docker swarm
Service 스웜에서 클러스트 안의 서비스(컨테이너 하나 이상의 집합)을 관리 docker service
Stack 스웜에서 여러 개의 서비스를 합한 전체 어플리케이션을 관리 docker stack

Dockerfile -> Compose -> Service -> Stack

Swarm vs 쿠버네티스

Swarm을 경험하기 위해서 dind(Docker in Docker)사용

Manager에 Swarm설정

레지스트리에 등록 방법

레지스트리에서 사용 방법

명령어

$ docker swarm init	# 스웜 초기화
$ docker swarm join ... # ...에 참여

Docker Service

$ docker exec -it manager \
	docker service create --replicas 1 --publish 8000:8080 --name echo\
	registry:5000/example/echo:latest
$ docker exec -it manager service ls
$ docker exec -it manager sclae echo=6
$ docker exec -it manager service ps [ServiceName]
$ docker exec -it manager service rm [ServiceName or ServiceID]

Docker Stack

Docker Stack

명령어

$ docker stack ls
$ docker stack services [Service Name]

overlay

오버레이 생성

$ docker network create --driver=overlay --attachable [name]

$ docker stack deploy -c [filePath] [stack name]

docker stack deploy -c /stack/my-webapi.yml echo