스웜에서 서비스 확인하기

스웜에서 서비스 확인하기

스웜에 서비스를 배포한 뒤에는 Docker CLI를 사용해서 실행 중인 서비스의 세부 정보를 확인할 수 있어요. 이번에는 docker service 명령어로 서비스의 상태와 설정을 어떻게 살펴보는지 함께 알아볼게요. 명령어를 직접 입력하면서 따라 해 보세요.

출처: 공식문서

본문

서비스 상세 정보 확인하기

먼저 매니저 노드에 접속해야 해요. 아직 접속하지 않았다면 터미널을 열고 SSH로 매니저 노드에 들어가세요. 예제에서는 manager1이라는 머신을 사용하고 있어요.

docker service inspect --pretty <SERVICE-ID> 명령어를 실행하면 서비스에 대한 정보를 읽기 쉬운 형식으로 보여줘요. helloworld 서비스의 정보를 확인하려면 이렇게 입력하면 돼요.

[manager1]$ docker service inspect --pretty helloworld

ID: 9uk4639qpg7npwf3fn2aasksr
Name: helloworld
Service Mode: REPLICATED
 Replicas: 1
Placement:
UpdateConfig:
 Parallelism: 1
ContainerSpec:
 Image: alpine
 Args: ping docker.com
Resources:
Endpoint Mode: vip

팁: 서비스 정보를 JSON 형식으로 확인하고 싶다면 --pretty 옵션 없이 같은 명령어를 실행하면 돼요.

[manager1]$ docker service inspect helloworld
[
{
 "ID": "9uk4639qpg7npwf3fn2aasksr",
 "Version": {
 "Index": 418
 },
 "CreatedAt": "2016-06-16T21:57:11.622222327Z",
 "UpdatedAt": "2016-06-16T21:57:11.622222327Z",
 "Spec": {
 "Name": "helloworld",
 "TaskTemplate": {
 "ContainerSpec": {
 "Image": "alpine",
 "Args": [
 "ping",
 "docker.com"
 ]
 },
 "Resources": {
 "Limits": {},
 "Reservations": {}
 },
 "RestartPolicy": {
 "Condition": "any",
 "MaxAttempts": 0
 },
 "Placement": {}
 },
 "Mode": {
 "Replicated": {
 "Replicas": 1
 }
 },
 "UpdateConfig": {
 "Parallelism": 1
 },
 "EndpointSpec": {
 "Mode": "vip"
 }
 },
 "Endpoint": {
 "Spec": {}
 }
}
]

서비스 태스크 확인하기

docker service ps <SERVICE-ID> 명령어를 사용하면 어떤 노드에서 서비스가 실행 중인지 확인할 수 있어요. helloworld 서비스의 태스크를 확인해 볼게요.

[manager1]$ docker service ps helloworld

NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
helloworld.1.8p1vev3fq5zm0mi8g0as41w35 alpine worker2 Running Running 3 minutes

이 경우 helloworld 서비스의 인스턴스 하나가 worker2 노드에서 실행되고 있어요. 매니저 노드에서 실행되는 경우도 볼 수 있는데, 기본적으로 스웜의 매니저 노드는 워커 노드처럼 태스크를 실행할 수 있기 때문이에요. DESIRED STATECURRENT STATE를 보면 서비스 정의에 따라 태스크가 제대로 실행되고 있는지 알 수 있어요.

컨테이너 확인하기

태스크가 실행 중인 노드에서 docker ps 명령어를 실행하면 해당 태스크의 컨테이너 정보를 볼 수 있어요. 만약 helloworld가 매니저 노드가 아닌 다른 노드에서 실행 중이라면, 그 노드로 SSH 접속을 해야 해요.

[worker2]$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e609dde94e47 alpine:latest "ping docker.com" 3 minutes ago Up 3 minutes helloworld.1.8p1vev3fq5zm0mi8g0as41w35

더 알아보기 (Learn more)

다음 단계로, 스웜에서 실행 중인 서비스의 스케일을 변경해 볼 거예요. 스케일 변경하기로 이동하세요.