docker swarm 을 사용하지않고 단일 물리 머신에서는 docker run … 과같은 명령어들을 docker compose 에 설정하여 사용하는 방법이있었다. docker swarm 에서도 역시 이런 유사한 방법이 있는데 docker service create … 들을 정의하여 사용하는방법이 있으며 docker stack 이라고 지칭한다. docker stack 을 어떻게 사용하는지 알아보자 .
configure yml file
이전포스트 docker swarm service 에서 제시된 service 를 생성하는 명령어는 다음과 같다. 다음과 같은 service를 생성하는 명령어가 있다고 가정하자.
정상적으로 생성이 완료되었다. 추가적으로 stack으로 생성된 services들은 stack 명령어로도 확인이 가능하다.
1
2
3
4
5
6
7
8
9
$ docker stack ls
NAME SERVICES
setyourmindpark 1
$ docker stack ps setyourmindpark
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
vl95vusgaqcp setyourmindpark_nginx.1 setyourmindpark/debian-nginx:latest nginx Running Running 8 minutes ago
da0107q7fwiv setyourmindpark_nginx.2 setyourmindpark/debian-nginx:latest nginx Running Running 8 minutes ago
v8om2wwr4ba4 setyourmindpark_nginx.3 setyourmindpark/debian-nginx:latest nginx Running Running 8 minutes ago
해당 yml 파일에 기술한 nginx service 외에도 필요한 service를 같이 기술하면, stack deploy시 정의된 모든 services들이 같이 올라올것이다. 그밖에도 cpu나, memory limit 과 같은 추가적인 옵션들을 제공하며,( 당연히 docker service create … 시에도 똑같이 사용할수있다. ) 제공하는 옵션은 docker Compose file version 3 reference 에서 확인가능하다.
견해
docker 를 잠시동안 놓게되면 정말 엄청나게 빨리 version up 이 되는듯하다. 새로생긴 옵션도 많아지고, 점점더 진입장벽이 생기는듯하다. 새로 눈여겨볼 부분은 service create 시 -v 가 먹히지않는다는점.. docker document에서는 권장사항이라고 언급하고있으나 필자의 version에서는 해당명령어를 사용할수없었다. 물론 –mount 옵션이 좀더 많은 기능을 제공하는듯하다. nas와 같은 volume container를 설정할수있는 옵션이 추가된듯하다 자세히 살펴보지않았지만… 꾸준히 docker document를 살펴보는 습관을 길러야겠다.