두 인스턴스에 docker를 설치한다.
디렉토리 하나 파서 준비
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
docker swarm init --advertise-addr=<leader의 private ip주소>
스웜 클러스터의 리더가 되도록 초기화하는 작업.
결과로
To add a worker to this swarm, run the following command:
docker swarm join --token ...
해당 명령어를 복사한다.
복사한 명령어를 붙여넣기 한다.
안되면 sudo
This node joined a swarm as a worker.
docker node ls
를 해서 worker 노드들이 잘 추가 되었는지 확인한다.
같은 명령어를 worker에 입력하면, This is not a swarm manager 라고 나온다.
sudo docker service create --name <name> --replicas 5 -p 5000:80 <imageName>
<imageName>
성공한다면 레플리카 수(5) 만큼 running이 뜬다.
docker ps
하면 몇개의 컨테이너가 돌아가는 걸 볼 수 있다.
docker ps
여기서 돌아가는 컨테이너 수도 합치면 전체 레플리카 수가 나와야 됨
docker service scale 서비스명=레플리카수