본문 바로가기

MicroService

도커 컨테이너와 마이크로서비스

  • 컨테이너화의 개념과 마이크로서비스 관점에서 컨테이너화의 타당성
  • 마이크로서비스를 도커 이미지 및 도커 컨테이너로 만들고 배포하는 방법
  • AWS를 활용한 클라우드 기반의 도커 배포
에 관한 내용을 살펴보자.

하나의 물리적인 장비에 여러 개의 작은 가상머신을 운영하는 것은 자원 효율적이지 못하며, 결국에는 자원고갈로 이어지기 마련이다.

마이크로서비스의 원칙 중 하나는 실행환경의 하나부터 열까지 모두를 완전하게 캡슐화해서 자기 완비적이고 자율적인 특성을 유지해야 한다.

컨테이너의 장점

  1. 자기 완비적 : 컨테이너 패키지는 필수적인 애플리케이션 실행 바이너리와 의존하는 모든 라이브러리를 함께 포함하고 있어서 개발, 테스팅, 운영 환경 사이에서 환경 문제로 짝이 맞지 않는 일이 없게 보장한다.
  2. 가벼움 
  3. 확장성 : 이미지의 크기가 작고, OS 부팅이 필요 없으므로 서버를 내리거나 올리는 작업이 빨리 수행할 수 있다.
  4. 이식성 : 컨테이너는 장비 간 및 클라우드 서비스 간 이식이 가능하다.
  5. 저렴한 라이센스 비용
  6. 데브옵스 
  7. 버전관리
  8. 재사용성
  9. 불변 컨테이너

도커 소개

도커 클라이언트

소켓이나 REST API를 통해 도커 데몬과 상호작용할 수 있는 CLI 프로그램이다. 데몬이 실행되고 있는 호스트와 동일한 호스트에서 실행할 수도 있고, 다른 호스트에서 실행되고 있는 원격 데몬과도 연결할 수 있다

도커 데몬

도커 컨테이너를 만들고, 실행하고 배포하는 역할을 담당한다. 도커 데몬을 호스트 장비 위에서 실행되는 컨트롤러 서비스라고 생각해도 무리가 없다.

도커 이미지

운영체제 라이브러리, 애플리케이션 및 의존 라이브러리의 읽기 전용 복사본이다. 이미지가 생성되면 아무런 수정도 없이 어떤 도커 플랫폼 위에서든 확실히 수행되어야 한다.

도커 컨테이너

실행 중인 도커 이미지의 인스턴스이다. 
컨테이너는 호스트 운영체제의 커널을 이용한다.

도커 레지스트리

도커 이미지가 퍼블리싱되고 다운로드될 수 있는 중앙 저장소

Dockerfile

도커 이미지를 만들 수 있는 명령어를 포함하고 있는 빌드 파일 또는 스크립트 파일