Ubuntu, Mac 장비를 자주 사용하다 보면 Terminal 작업에 익숙해져서인지 Docker CLI 명령어가 어색하지는 않지만!! 항상 그렇듯이 조금 더 편하게 쓰고 싶다는 생각을 많이 하게 된다. 이런 경우 보통 추천하는게 Docker Kitemetic과 portainer 이다. 이 두개 모두 Docker CLI 기능을 제공하고 있기 때문이다. 하지만, portainer 의 경우 Docker swarm 을 이용해서 여러 서버 장비들의 Docker Container 까지 한번에 관리 할 수 있다는 장점이 있습니다. 간단한 Docker Orchestration 도구라고 할 수 있습니다.
Local 환경에서 하나의 장비의 Docker Container 를 관리 한다면 kitemetic 을 여러 장비에서 Docker Contatiner 를 관리해야 한다면 portainer 를 사용 하는 것을 추천 할 수 있습니다.
portainer 는 Web 기반 Dash Board 로 아래와 같은 기능을 제공 합니다.
- Docker CLI 기능 지원 : Start/Stop/Delete 등
- Docker Container 별 리소스 모니터링 / 로그 분석 등 기능
- Docker Container 별 실행 Shell 지원
요론 좋은 기능을 가지는 portainer 는 docker 로 쉽게 설치가 가능합니다.
sudo docker run -d
-p 9090:9000 \
--name=portainer \
--restart=unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/portainer/data:/data \
portainer/portainer\
요렇게 docker 를 실행하면 9090 port 로 portainer 가 실행 됩니다.
여기서 passwd 를 만들어주고 “Local Manage the local Docker enviroment” 를 선택합니다.
Remote 를 선택하고 Docker API 를 연동하여 여러 서버의 Docker Container 를 관리 할 수도 있습니다. 하지만, Local Manage the local Docker enviroment 를 선택하고 Docker Swarm 을 이용하는게 더 쉬우니 고민 말고 Local 로 선택 합니다.
요렇게 나온 화면에서 local 을 선택 하면 아래와 같은 기능이 지원 된다.
Docker Container, Image, Volume 을 한번에 볼 수도
Docker Container 의 Start, Stop, Kill, Restart 등을 한번에 할 수도
Docker Container 의 Resource Monitoring 을 할 수도
Docker Container 의 Console 에 접속 할 수도
이제 portainer 의 장점 중 하나인 여러 장비의 Remote 관리를 하는 방법을 알아 보겠습니다.
1. portainer 가 설치된 host 가 될 장비에서 docker swarm init 으로 초기화를 합니다. 초기화를 하면, docker swarm join ~~ 이라는 메세지가 나오고 token 이 발급된 명령어를 copy 합니다.
$ docker swarm init
2. docker swarm 초기화를 했으니, 이제 docker swarm 의 worker node 를 관리하는 portainer agent 를 설치합니다.
$ curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
$ docker stack deploy --compose-file=portainer-agent-stack.yml portainer
3. 이제 guest 가 될 장비에서 아까 copy 한 docker swarm join ~~~ 명령어를 입력 하면, This node joined a swarm as a worker 메세지가 나오고 portainer 가 설치된 host 장비와 docker swarm 으로 연결 되었습니다.
$ docker swarm join --token SWMTKN-1-2utjbwmx9imo 192.168.10.163:2377
4. portainer 로 돌아가 보면 Docker Continer 와 Volume 등이 늘어 난것을 볼 수 있습니다. Docker Swarm Worker Node 의 Docker 가 portainer 가 설치된 Docker Swarm Manager 에 등록 된 것입니다
이렇게 등록된 Docker Swam 은 아래와 같습니다.
이렇게~ Docker Swarm 과 portainer 를 이용하면 간단한 Docker Orchestration 시스템을 만들수 있습니다. :)
참고 1
: Docker Volume 을 추가 하려면 third party driver 를 이용해야 합니다.
curl -fsSL https://raw.githubusercontent.com/MatchbookLab/local-persist/master/scripts/install.sh | sudo bash
참고 2
Docker Swarm 이란?
수많은 컨테이너 오케스트레이션 도구 중의 하나로, 여러 대의 Docker 호스트들을 마치 하나인 것처럼 만들어주는 Orchestration 도구입니다. Docker v1.12 이후부터 Docker Swarm Mode 로 별개의 Docker Swarm 엔진에서 Docker 엔진으로 통합되면서 좀 더 간편한 설치가 가능해졌습니다.
'개발' 카테고리의 다른 글
Flutter Launcher Icon 변경 (0) | 2021.07.20 |
---|---|
Docker ubuntu Image Build Proxy 설정 (0) | 2021.07.19 |
java, java script 에서 list, json object 의 중복 제거 (0) | 2021.07.19 |
Workspaces Layout Change 2x2 in Ubuntu 18.04 (0) | 2021.07.19 |
Ubuntu Use MagicMouse2 & Pad2 : Touch Scroll Working (0) | 2021.07.19 |