컨테이너란 무엇일까?

  • 애플리케이션을 실행하는데 필요한 모든 구성 요소와 기능을 갖춘 소프트웨어이다.
  • 전체 실행(runtime)환경에서 애플리케이션을 패키징하고 격리할 수 있는 기술이다.
  1. 컨테이너화 된 애플리케이션은 환경(개발/테스트/프로덕션)에 쉽게 이동할 수 있다.

  2. 컨테이너 파이프라인에 보안을 구축하고 인프라를 보호하여 컨테이너의 안정성, 확장성, 신뢰성을 보장할 수 있다.

  3. 일관된 행동과 기능으로, 퍼블릭/프라이빗/클라우드 간에 쉽게 이동이 가능하다.

장점

  1. 담당 영역을 분리하여 개발 팀과 운영 팀간의 충돌을 줄일 수 있다.
  2. 오픈기술을 기반으로 하기 때문에, 최신 기술을 활용하여 다양하고 강력한 기술의 제품을 채택할 수 있다. ex) docker / k8s 등등
  3. 클라우드 네이티브 개발 방식에 필요한 기반 기술을 제공한다.

컨테이너 오케스트레이션이란?

  • 전사적으로 배포를 관리할 수 있는 방법이다.
  • k8s(쿠버네티스)는 컨테이너 작업을 자동화하는 오픈소스 플랫폼이다.
  • 컨테이너화 된 애플리케이션을 배포하고 확장하는데 수동 프로세스를 필요로 하지 않는다.

Docker와 Linux Container 의 차이?

docker는 전통적인 LXC와 다르다. 
docker도 처음에는 LXC기반으로 개발되었지만 이후, 이러한 종속관계에서 벗어났다.
LXC는 경량/가상화 기술은 뛰어났지만 사용자환경은 그에 미치지 못햇다.
하지만 docker는 컨테이너를 실행하는 것 이상의 다양한 생성/구축/이미지전송 등의 프로세스 관리를 용이하게 해준다.