Docker Swarm 예제

정원식·2023년 12월 16일

Docker Swarm 정리

목록 보기
1/7

22년 2월에 작성한 글입니다.

Docker Swarm 클러스터링

docker swarm init

docker swarm init --advertise-addr <마스터 IP>

1

docker swarm join

2

결과 확인

3

docker service 명령어

리스트, 상태 확인

  • 서비스 리스트: docker service ls [OPTIONS]
  • 서비스 상태: docker service ps [OPTIONS] SERVICE [SERVICE...]
  • 서비스 로그: docker service logs [OPTIONS] SERVICE|TASK

서비스 생성, 수정

  • 생성: docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 스케일: docker service scale SERVICE=REPLICAS [SERVICE=REPLICAS...]
  • 제거: docker service rm SERVICE [SERVICE...]

예제

  1. registry 생성 및 등록
  2. 서비스 작성 및 등록
  3. dashboard 등록

registry 생성 및 등록

  • 레지스트리에 올라가지 않은 이미지는 노드간에 서로 공유되지 않음
    이미지가 등록된 노드에서만 서비스가 실행될수 있음

  • 따라서 커스텀 이미지를 사용한다면 무조건 이미지 레지스트리 운영 필요

  • 레지스트리 추가 (전체 노드)

docker login 93ced1af-kr1-registry.container.cloud.toast.com/docker-swarm

이미지 작성

  • 폴더 생성 후 링크 에서 Dockerfileindex.php 복사
  • Dockerfile
FROM php:7.2-apache
MAINTAINER chhan <cheolhee.han@ibm.com>

ADD index.php /var/www/html/index.php

EXPOSE 80
  • index.php
<html>
<body>
<center>
<b>
<?php
$host=gethostname();
echo "pod name : ";
echo $host;
?>
<p> Image Version : original </p>
</b>
</center>
</body>
</html>

이미지 빌드

docker build -t phpdemo:v1 .

이미지 등록 to registry

docker tag phpdemo:v1 93ced1af-kr1-registry.container.cloud.toast.com/docker-swarm/phpdemo:v1
docker push 93ced1af-kr1-registry.container.cloud.toast.com/docker-swarm/phpdemo:v1

서비스 배포

docker service create --name phpdemo -p 80:80 --with-registry-auth \
93ced1af-kr1-registry.container.cloud.toast.com/docker-swarm/phpdemo:v1

docker service ls
docker service ps phpdemo

서비스 레플리카 증가

docker service scale phpdemo=3
docker service ls
docker service ps phpdemo

Reference

profile
매일매일 성장하고 싶은 백엔드 개발자입니다.

0개의 댓글