docker study 01
Docker 는 …
Docker란 컨테이너형 가상화 기술을 구현하기 위한 상주 애플리케이션과 이 애플리케이션을 조작하기 위한 도구입니다. 애플리케이션 배포에 특화되어 있기 때문에 애플리케이션 개발 및 운영을 컨테이너 중심으로 할 수 있습니.
로컬환경에 도커만 설치하면 몇 줄짜리 구성 파일과 명령어 한줄로 애플리케이션이나 미들웨어가 이미 갖춰진 테스트용 가상환경을 빠르게 구축 할 수 있습니다.
도커는 개발환경뿐만 아니라 운영환경에서도 큰 장점을 갖습니다. 기존 가상먼신 보다 가볍게 동작하며
, 로컬 머신의 도커 환경에서 운영환경으로 전환등 이식성이 뛰어나다
는 특징이 있습니다.
도커는 만능이 아니다.
가상머신과 비교했을 때, 도커가 반드시 좋은 것 만은 아닙니다. 예를 들어 운영체제의 특성을 이용해야 하는 경우에는 때때로 도커보다 기존의 가상머신이 더 좋을 수도 있습니다. 도커의 존재 목적 자체가, 가상 운영 환경이 아니라 애플리케이션을 빌드/배포 하는데 특화되어 있기 때문입니다.
컨테이너형 가상화 기술
도커는 컨테이너형 가상화 기술
을 사용합니다. 가상화 기술은 도커 이전에도 존재했던 개념입니다. 가상머신등에서 이미 사용하고 있습니다. 그러나 가상머신과의 차이점은 불필요한 운영체제를 가상화 하지 않는다는 점 입니다.
이와 같은 방식은 애플리케이션의 중점을 둠으로서 오버헤드를 줄일 수 있습니다. 다른 가상머신의 컨테이너 기술과는 다른 도커만의 특징은 아래와 같습니다.
- 호스트 운영체제의 영향을 받지 않음(도커 컨테이너만 실행할 수 있다면)
- DSL(Dockerfile) 을 이용한 컨테이너 구성 및 애플리케이션 배포 정의
- 이미지 버전 관리
- 레이어 구조를 갖는 이미지 포멧
- 도커 레지스트리(이미지 저장 서버 역할)
- 다양한 API
이렇듯 환경의 영향을 덜 받고 배포가 간편하다는 특징이 있습니다.
오케스트레이션 시스템
오케스트레이션은 여러 서버에 걸쳐 있는 여러 컨터이너를 관리하는 기법입니다. 서비스를 운영하다 보면 때때로 노드의 빌드/실행 순서등이 중요한 변수로 설정되어 있는 경우가 있습니다. 이럴때 Docker Compose
를 이용하면 yaml 포멧을 이용하여 의존 관계를 정의할 수 있습니다. 만약, 단일 서버가 아닌 여러 서버의 여러 컨테이너를 제어햐아 한다면 Docker Swarm
을 이용할 수 있습니다.
Docker Compose 와 Docker Swarm은 Docker가 제공하는 훌륭한 오케스트레이션 도구입니다. 그러나 이 분야에서 사실상 표준으로 자리 잡은 것은 구글에서 개발한 Kubernetes
입니다. 구글이 오랫동안 컨테이너를 운영하면서 얻은 노하우를 담은 오픈소스 소프트웨어 입니다. Swarm
보다 기능이 충실하며, 확장성이 높습니다.
이럴때 사용하세요
“A 서버에 배포한 애플리케이션을 B 서버에 동일하게 작동시키고 싶을 때”
“서버 설정과 설치된 라이브러리를 서버마다 동일하게 운영하고 싶을 때”
“서버에 설치된 라이브러리를 업데이트 해야할때”
“모든 서버를 동일하게 유지하고 싶을 때”
“갑자기 요청량이 증가한다면? 혹은 줄어든다면 ?”
댓글남기기