구글링 해보면 정말 많은 블로그에서 다양하게 설명해놓았다.
하지만 정말 처음 도커를 접하는 사람들은 (나같이) 개념정리가 잘 안되는 상태에서
막상 명령어들과 도구들을 친절하게 설명해놓으 블로그를 봐도 개념잡기가 너무 힘들다.
그래서 이것저것 알아보며 공부하다가 감이 잡혀가는 것들을 정리해 보았다.
컨테이너는 프로그램과 그 프로그램을 돌리기 위한 환경까지 모두 캡슐화 시킨것과 같다.
컨테이너안에 여러가지 프로그램을 넣을순 있지만 보통 한 컨테이너 안에 하나의 프로그램만 넣고 캡슐화 시킨다.
예를들면,
- Nginx
- Django
- PostgreSQL
보통 위와 같은 프로그램들이 한데 얽혀 백엔드서버를 구성한다고 할지라도,한 컨테이너당 하나의 프로그램만 구성하여 총 3개의 컨테이너를 사용한다.
그에 따른 이점은 레고를 갈아끼듯이 필요한 버전업이 있는 경우 해당하는 컨테이너만 쉽게 교체할 수 있기 때문이라고 이해했다.
도커는 이러한 컨테이너 기법을 활용할 수 있는 툴 중 가장 유명한 것이다. 물론 다른 툴도 있다고 한다.
좀 전에 한 인스턴스에서 여러개의 컨테이너를 여러개 사용해서 하나의 서버를 구성할 수 있다고 했다. 그것을 위해서 백그라운드에서 프로세스당 각 컨테이너를 실행시켜 연결할 수 있다. 연결하는 방법은 보통 http 포트를 이용하는것 같다. 유닉스 소켓을 활용할 수 있을지 좀더 공부해 봐야겠다.
컨테이너들을 각각 실행시키는것은 괴로운 작업이 될것이다.
그래서 그 컨테이너들을 동시에 실행시켜줄 수 있는것이 도커 컴포즈이다.
도커컴포즈는 한 인스턴스 내에서 여러 컨테이너를 쉽게 관리 할 수 있게 도와주는 툴이다. 사실 도커 컨테이너를 실행할때 여러가지 옵션과 환경변수 설정하는것이 귀찮고 명령어가 길어지는데 도커 컴포즈를 이용하면 .yml파일에 모두 저장이 가능하여 단순한 명령어 하나로 컨테이너 구동이 가능하게 된다.
쿠버네티스는 여러 인스턴스에서 여러 컨테이너를 쉽게 관리 할 수 있게 해주는 툴이다.
개념정리가 될때마다 업데이트를 해야겠다.
No comments:
Post a Comment