시스템의 나머지 부분과 분리된 1개 이상의 프로세스 세트.
이러한 프로세스를 실행하는 데 필요한 모든 파일은 개별 이미지에서 제공,
Linux 컨테이너는 개발 단계에서 테스트, 프로덕션에 이르기까지 이식성과 일관성 유지.
서버 환경을 재구축하는 부가적인 작업 없이 애플리케이션 구동을 지원하고, 큰 문제나 수정 없이 애플리케이션을 배포할 수있기 때문에 컨테이너를 사용한다.
단일 하드웨어 시스템에서 여러 운영 체제가 동시에 실행될 수 있도록 한다.
동일한 운영체제 커널을 공유하고 시스템의 나머지 부분으로부터 애플리케이션 프로세스를 격리.
Linux컨테이너는 이식성이 매우 뛰어나지만 기본 시스템과 호환이 되어야한다.
이 이미지를 봤을 때,
가상화는 하이퍼바이저를 사용해 하드웨어를 에뮬레이션(소프트웨어를 한 장치가 정말로 다른 장치라고 믿도록 속이는 것)하고, 이를 통해 여러 운영체제를 병렬로 실행. -> 컨테이너 만큼 경량화 불가능
Linux 컨테이너는 운영체제에서 기본으로 실행되고 모든 컨테이너 전체에서 운영체제를 공유해 애플리케이션과 서비스를 가볍게 유지할 수 있고, 빠른 속도로 동시에 실행 가능.
Linux 컨테이너 이미지는 이식성과 버전관리기능을 제공해 개발자의 노트북에서 수행하는 작업을 프로덕션에서도 수행할 수 있게 한다.
실행중인 Linux 컨테이너는 가상머신보다 리소스를 적게 사용, 표준 인터페이스(시작, 중지, 환경변수 등)가 갖춰져있고, 애플리케이션 격리를 유지할뿐만 아니라 대규모 애플리케이션(여러 컨테이너)의 일부로 더 쉽게 관리할 수 있다.
이러한 멀티컨테이너 애플리케이션은 여러 클라우드에 걸쳐 오케스트레이션 할 수 있다.