본문 바로가기
DevOps/Docker

[Docker] : 도커 스택 사용하기

by 오주현 2022. 3. 12.
반응형
networks: {}
services:
	mysql:
		comand: mysqld
		image: alicek106/composetest:mysql
	web:
		command: apachectl -DFOREGROUND
		image: alicek106/composetest:web
		links:
		- mysql: db
		ports:
		- 80:80
version: '3.0'
volumes: {}

docker-compose.yml 파일을 작성한다. 이제 이 파일을 가지고 스택으로 변환한다. docker stack deploy 명령어에 YAML 파일을 지정하고 마지막에 스택 이름을 입력한다.

 

docker stack deploy -c docker-compose.yml mystack

docker-compose.yml 파일에서 mystack라는 이름의 스택을 생성한다. 확인해 보면 컨테이너 간의 의존성을 정의하는 항목은 사용할 수 없다. 도커 스웜에서 도커 컴포즈를 사용하는 제약 사항에 links를 사용하려면 양 컨테이너가 같은 호스트에 생성되야 하기 때문이다.

 

docker stack ls

docker stack ps mystack

생성된 스택은 위 명령어로 확인이 가능하다. 아래 명령어로는 특정 서비스에 존재하는 컨테이너를 확인할 수도 있다.

 

docker service ls

docker stack services mystack

위 두 명령어는 같은 정보를 출력한다.

스택은 도커 컴포즈가 아닌 스웜 킷에 의해 생성되기 때문에 docker-compose scale 명령어가 아니라 docker service scale를 사용해 컨테이너 수를 조절한다. 이렇게 되면 클러스터에 컨테이너가 적절히 분배되게 된다.

 

docker service scale mystack_web=2
docker stack rm mystack

스택을 삭제하려면 rm 명령어로 삭제할 수 있다.

 

 


📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다.

반응형

댓글