January 21, 2019
여러 개의 컨테이너, 여러 개의 docker machine에 어플리케이션을 만들 수 있다. swarm이라고 불리는 Dockerized cluster에 다중 머신을 join해서 multi-container, multi-machine app이 만들어진다😄 you deploy this application onto a cluster, running it on multiple machines. Multi-container, multi-machine applications are made possible by joining multiple machines into a “Dockerized” cluster called a swarm.
swarm : docker running 하고 cluster를 join하는 group of machines. swarm manager : execute docker on a cluster. node : swarm에 join된 machine들을 node라고 부른다.
compose file에 이런 전략들을 사용해서 swarm manager에게 지시할 수 있다.
A swarm is made up of multiple nodes. swarm을 setup 하는건 쉽다. docker swarm init 해서 swarm mode를 만든 후, docker swarm join을 다른 머신에서 실행시켜서 worker 로써 swarm에 포함시키는 것!
docker-machine create --driver virtualbox myvm1
을 하면 myvm1이란 이름을 가진 virtualbox가 실행된다.docker-machine ls
으로 확인하기.docker-machine ssh myvm1 "docker swarm init --advertise-addr <myvm1 ip>"
를 사용하면 된다.
docker machine을 swarm에 worker로 join시키고 싶다면 대상 machine에 대해 docker-machine ssh myvm2 "docker swarm join --token <token> <ip>:2377"
실행한다. 여기서 token과 ip는 swarm manager의 것.docker-machine ssh
를 사용해서 command를 할 수도 있지만, docker-machine env myvm1
을 치면 설정들이 나오고, shell configure 하려면 아래 명령어를 실행하세요! 이런게 나온다. 환경마다 다 다른 것 같은데, 알아서 잡아 주는 듯? 나같은 경우는 eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env myvm1)
이거여서, 실행시켜 주면 docker-machine ls
로 ACTIVE가 myvm1에 체크되있는 걸 확인할 수 있다.eval $(docker-machine env -u)
docker-machine start <machine-name>
A stack is a group of interrelated services that share dependencies, and can be orchestrated and scaled together.
docker-compose.yml 에 web, visualizer, redis 같은 거 서비스 여러개 추가해서 stack 함