기본적으로 완전한 기능을 갖춘 이식성 있는 컴퓨팅 환경
소프트웨어 코드를 라이브러리, 프레임워크 및 기타 종속성과 같은 필수 요소와 함께 패키지에 포함하여 각자의 "컨테이너"로 분리한 것을 뜻한다. (출처 : Red Hat )
컨테이너는 어플리케이션을 둘러싼 한 공간으로, 주변과 분리해주는 역할을 한다.
기존 : 하나의 플랫폼 또는 운영 체제에서 코드를 작성
-> 코드가 새로운 환경과 호환되지 않을 경우 어플리케이션의 이동이 어려워지며 그로 인한 버그 및 결함 발생. -> 해결에 시간소요, 생산성 저하
컨테이너화 : 실행에 필요한 요소가 이미 패키지 안에 모두 포함 되어 있기 때문에, 해당 어플리케이션을 어디서든 사용 가능함.
컨테이너는 어플리케이션 및 실행 환경보다 큰 것은 패키징하지 않는다.
빠르게 자주 변경하고 다시 배포해야 하는 거의 모든 어플리케이션이 컨테이너화에 적합하다. 마이크로 서비스 아키텍처를 이용하는 애플리케이션의 경우에도 좋다.
애플리케이션을 지원하기 위해 컨테이너를 배포하고 구성하는 것을 컨테이너 오케스트레이션이라고 하며, 컨테이너 오케스트레이션 도구를 통해 수행된다. 대표적으로 쿠버네티스가 있다.