10.5 서비스 만들기

이제까지 우리는 Leader와 Worker를 연동했습니다. 이제 컨테이너를 실행할 차례입니다.

우리가 할 일은 관리자에게 컨테이너를 실행하도록 지시하는 것입니다. 컨테이너를 예약하고, 노드에 명령을 보내고 배포하는 작업을 처리해줍니다.

서비스를 시작하려면 아래의 순서대로 해야 합니다.

  • 실행할 Docker 이미지는 무엇입니까? (여기서는 Docker Hub에서 제공되는 nginx 이미지를 실행합니다.)

  • 80 포트로 서비스를 오픈 합니다.

  • 시작할 컨테이너 수를 지정합니다.

  • 서비스 이름을 작성합니다. (편리하게 관리하기 위함)

우선 우리가 할일은 nginx 컨테이너를 시작하는 것입니다. manager1에 SSH로 접속 한 후 아래의 명령어를 실행합니다.

docker@manager1:~$ docker service create --replicas 3 -p 80:80 --name web nginx g2kc4lueo1yu1k33p4okzqxt6 overall progress: 3 out of 3 tasks 1/3: running [==================================================>] 2/3: running [==================================================>] 3/3: running [==================================================>] verify: Service converged

아래의 명령어로 서비스 상태를 확인합니다.

docker@manager1:~$ docker service ls ID NAME MODE REPLICAS IMAGE PORTS g2kc4lueo1yu web replicated 3/3 nginx:latest *:80->80/tcp docker@manager1:~$

다음의 명령어로 서비스 상태와 노드 상태를 확인합니다.

docker@manager1:~$ docker service ps web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS wtvu8i8qjadv web.1 nginx:latest manager1 Running Running about a minute ago z07fi174otkf web.2 nginx:latest worker1 Running Running about a minute ago 8euc7m27n5up web.3 nginx:latest worker2 Running Running about a minute ago docker@manager1:~$

nginx 데몬이 시작된 것을 확인할 수 있습니다.

docker@manager1:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0326a579e968 nginx:latest "nginx -g 'daemon of..." 6 minutes ago Up 6 minutes 80/tcp web.1.wtvu8i8qjadvx6fudmoo0e7zv docker@manager1:~$