[Docker] swarm 맛보기
- 아마존 aws 이용, ec2 기계 위에서 swarm을 돌려보자.
- 돌릴 이미지는 apache 서버이다.
준비
aws에서 설정
- ec2 인스턴스 2개가 있어야 한다. leader와 worker가 된다.
- TCP 2377, 5000 번 포트를 인바운드 룰에서 열어둔다.
docker 설치
두 인스턴스에 docker를 설치한다.
dockerfile 준비
디렉토리 하나 파서 준비
vim dockerfile
FROM ubuntu
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get install -y apache2
ADD . /var/www/html
ENTRYPOINT apachectl -D FOREGROUND
docker build -t <username>:apache /home/ubuntu/swarm_1/
빌드 후 push해서 도커헙에 등록
만약 Geographic 선택 창에서 안 넘어간다면
Ctrl C로 죽이고 ENV 라인이 있는지 확인한다.
docker login
다커헙 아이디 비번으로 로그인 후 push
docker push <username>/apache
실행
swarm 초기화
leader
docker swarm init --advertise-addr=<leader의 private ip주소>
스웜 클러스터의 리더가 되도록 초기화하는 작업.
결과로
To add a worker to this swarm, run the following command:
docker swarm join --token ...
해당 명령어를 복사한다.
worker
복사한 명령어를 붙여넣기 한다.
안되면 sudo
This node joined a swarm as a worker.
leader
docker node ls
를 해서 worker 노드들이 잘 추가 되었는지 확인한다.
같은 명령어를 worker에 입력하면, This is not a swarm manager 라고 나온다.
서비스 설정 (name, replica)
leader
sudo docker service create --name <name> --replicas 5 -p 5000:80 <imageName>
- --name 서비스이름
- --replicas 레플리카 수
- --p 포트번호
- 이번에 apache 서버 띄울 거니까 80번으로 포트포워딩
<imageName>
- 예시: 00mari/test
- 도커헙에 올려진 이미지 입력
- 이 똑같은 이미지를 worker에서도 가져올 거임
성공한다면 레플리카 수(5) 만큼 running이 뜬다.
docker ps
하면 몇개의 컨테이너가 돌아가는 걸 볼 수 있다.
worker
docker ps
여기서 돌아가는 컨테이너 수도 합치면 전체 레플리카 수가 나와야 됨
레플리카 수 줄이기
docker service scale 서비스명=레플리카수
Author And Source
이 문제에 관하여([Docker] swarm 맛보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@0008mari/Docker-swarm-맛보기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)