여러 서비스 확장 (Scale)
이 단계에서는 여러 서비스를 동시에 확장하는 방법을 배우겠습니다. 이는 예를 들어 애플리케이션의 서로 다른 구성 요소와 같이 함께 확장해야 하는 여러 서비스가 있는 경우 유용합니다.
먼저 다른 서비스를 만들어 보겠습니다. nginx 이미지를 사용하여 my-nginx-service라는 서비스를 1 개의 replica 로 생성합니다. 먼저 nginx 이미지를 pull 해야 합니다.
docker pull nginx
nginx 이미지가 pull 되고 있음을 나타내는 출력을 볼 수 있습니다.
이제 my-nginx-service를 생성합니다.
docker service create --name my-nginx-service --replicas 1 nginx
my-nginx-service의 생성을 확인하는 출력을 볼 수 있습니다.
이제 두 개의 서비스가 있습니다: my-alpine-service (현재 0 으로 축소됨) 및 my-nginx-service (1 로 확장됨). 두 서비스를 한 번에 확장해 보겠습니다. my-alpine-service를 2 개의 replica 로, my-nginx-service를 3 개의 replica 로 확장합니다.
docker service scale my-alpine-service=2 my-nginx-service=3
이 명령을 실행하면 Docker Swarm 이 지정된 replica 수에 따라 두 서비스를 모두 업데이트합니다. 두 서비스가 업데이트되고 있음을 나타내는 출력을 볼 수 있습니다.
두 서비스가 확장되었는지 확인하려면 서비스를 나열할 수 있습니다.
docker service ls
이제 my-alpine-service가 2 개의 replica 와 함께, my-nginx-service가 3 개의 replica 와 함께 나열된 것을 볼 수 있습니다.
각 서비스의 작업을 개별적으로 확인하여 실행 중인 컨테이너를 볼 수도 있습니다.
docker service ps my-alpine-service
이렇게 하면 my-alpine-service에 대한 2 개의 실행 중인 작업이 표시됩니다.
docker service ps my-nginx-service
이렇게 하면 my-nginx-service에 대한 3 개의 실행 중인 작업이 표시됩니다.
마지막으로, 생성한 서비스를 정리해 보겠습니다. docker service rm 명령을 사용하여 두 서비스를 모두 제거할 수 있습니다.
docker service rm my-alpine-service my-nginx-service
두 서비스가 제거되었음을 확인하는 출력을 볼 수 있습니다.
서비스가 제거되었는지 확인하려면 서비스를 다시 나열합니다.
docker service ls
나열된 서비스가 없어야 합니다.