ID 로 서비스 필터링
이 단계에서는 Docker 스택에서 고유 ID 를 기반으로 서비스 목록을 필터링하는 방법을 배우게 됩니다. 이름으로 필터링하는 것이 더 직관적일 수 있지만, ID 로 필터링하는 것은 정확성이 절대적으로 필요하거나 유사한 이름을 가진 서비스를 처리해야 할 때 유용합니다.
Docker 스택의 각 서비스에는 고유 ID 가 할당됩니다. 이러한 ID 는 docker stack services의 출력 첫 번째 열에서 확인할 수 있습니다.
서비스 ID 로 필터링하려면 id 필터와 함께 --filter 플래그를 사용합니다. 구문은 --filter id=<service_id>입니다. 서비스를 고유하게 식별하기 위해 ID 의 충분한 접두사만 제공하면 됩니다.
먼저, ID 를 얻기 위해 모든 서비스를 다시 나열해 보겠습니다.
docker stack services mystack
출력을 보고 mystack_web 및 mystack_app 서비스의 ID 를 식별합니다. ID 는 16 진수 문자의 문자열입니다. 예를 들어, 출력은 다음과 같을 수 있습니다 (ID 는 다를 것입니다).
ID NAME MODE REPLICAS IMAGE PORTS
xxxxxxxxxxxx mystack_app replicated 1/1 alpine:latest
yyyyyyyyyyyy mystack_web replicated 1/1 nginx:latest *:80->80/tcp
mystack_web의 ID 가 yyyyyyyyyyyy로 시작한다고 가정해 보겠습니다. 이 ID (또는 더 짧은 고유 접두사) 로 다음과 같이 필터링할 수 있습니다.
docker stack services mystack --filter id=yyyyyyyyyyyy
yyyyyyyyyyyy를 mystack_web 서비스의 실제 ID 시작 부분으로 바꿉니다.
이 명령은 일치하는 ID 를 가진 서비스에 대한 행만 표시합니다.
다음과 유사한 출력을 볼 수 있으며, mystack_web 서비스만 표시됩니다.
ID NAME MODE REPLICAS IMAGE PORTS
yyyyyyyyyyyy mystack_web replicated 1/1 nginx:latest *:80->80/tcp
마찬가지로, mystack_app 서비스의 ID 로 필터링할 수 있습니다. docker stack services mystack 출력에서 ID 를 찾아서 필터에 사용합니다. 예를 들어, ID 가 xxxxxxxxxxxx로 시작하는 경우:
docker stack services mystack --filter id=xxxxxxxxxxxx
xxxxxxxxxxxx를 mystack_app 서비스의 실제 ID 시작 부분으로 바꿉니다.
그러면 mystack_app 서비스에 대한 정보가 표시됩니다.
ID NAME MODE REPLICAS IMAGE
xxxxxxxxxxxx mystack_app replicated 1/1 alpine:latest
ID 로 필터링하면 특히 자동화된 스크립트에서 또는 유사한 이름을 가진 서비스를 처리할 때 특정 서비스를 대상으로 하는 정확한 방법을 제공합니다.