본문 바로가기

리눅스

Docker Swarm 클러스터에 서비스를 배포하는 방법

728x90

Docker Swarm 클러스터에 서비스를 배포하는 방법

간단한 웹 애플리케이션을 배포하는 예제

1. Docker Swarm 초기화

docker swarm init
$ docker swarm init
Swarm initialized: current node (r5gzcy2g0swe61mkuz71do3cr) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-40ip16kv9qxhuz5pplde-64zbe5aqna0wm46mxo 192.168.100.201:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

2. 서비스를 정의하는 docker-compose.yml 파일 작성

vim docker-compose.yml
version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

3. docker stack deploy 명령어 실행

docker stack deploy -c docker-compose.yml mywebapp
  • -c 옵션은 사용할 docker-compose.yml 파일을 지정합니다.
  • mywebapp은 배포한 서비스를 그룹화하는 스택의 이름입니다.
$ docker stack deploy -c docker-compose.yml mywebapp
Creating network mywebapp_default
Creating service mywebapp_web
728x90

4. 스택 확인

현재 배포된 스택을 확인할 수 있습니다.

docker stack ls
$ docker stack ls
NAME       SERVICES
mywebapp   1

5. 스택에 속한 서비스 확인

스택에 속한 서비스들을 확인할 수 있습니다.

docker service ls
$ docker service ls
ID             NAME           MODE         REPLICAS   IMAGE          PORTS
rpcr3dxpvig9   mywebapp_web   replicated   1/1        nginx:latest   *:80->80/tcp

6. 웹 브라우저에서 확인

웹 브라우저를 열고 http://<Swarm_Manager_IP>로 접속하여 Nginx 웹 서버의 기본 페이지를 확인할 수 있습니다.

http://192.168.1000.201

browser1

7. 서비스 업데이트

서비스를 업데이트하려면 docker stack deploy 명령어를 다시 실행하면 됩니다. 예를 들어, 이미지를 업데이트하려면 docker-compose.yml 파일에서 이미지 버전을 변경하고 다시 docker stack deploy 명령어를 실행합니다.

 

이렇게 하면 Docker Swarm 클러스터에 간단한 서비스를 배포할 수 있습니다.

 

참고URL

- Docker Swarm Documentation : Deploy a stack to a swarm

- Docker Swarm Documentation : Deploy services to a swarm

 

728x90