반응형
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 명령어로 삭제할 수 있다.
📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다.
반응형
'DevOps > Docker' 카테고리의 다른 글
[Docker] : 도커와 컨테이너 생태계 (0) | 2022.03.12 |
---|---|
[Docker] : 도커 스웜 모드와 함께 사용하기 (0) | 2022.03.10 |
[Docker] : 도커 컴포즈 네트워크 (0) | 2022.03.10 |
[Docker] : YAML 파일 작성(2) (0) | 2022.03.09 |
[Docker] : YAML 파일 작성(1) (0) | 2022.03.08 |
댓글