앱과 앱이 의존하고 있는 것들을 묶어 단일 컨테이너에 넣어 소프트웨어화 하는 것을 의미한다. 특징으로 가볍고 해당 패키지 안에 앱을 실행시킬 수 있는 모든 것들이 들어 있어 실행 가능한 패키지이기도 하다.
패키지 안에는 코드, 실행환경, 라이브러리, 환경설정, systemtools(?) 등이 들어있다. 컨테이너들은 컨테이너와 호스트 시스템과 독립된다. 이 말은 컨테이너는 다른 환경 그리고 다른 컴퓨터에서 별다른 세팅 없이 운영할 수 있다.
컴퓨터와 운영체제의 가상버전을 만드는 만드는 방법을 일컫는다. VMware, VirtualBox는 Host OS 위에 가상머신을 만든다. 각각의 가상머신은 독립된 환경이며 고유의 운영체제 그리고 앱과 그에따른 설정을 가진다. 대개 컨테이너보다 용량을 많이 차지한다. 그 이유는 가상 머신은 각각의 운영체제와 하드웨어 자원을 할당 해야하고 그에 따른 메모리를 차지해야하기 때문이다.
따라서 컨테이너와 전통적 가상화의 차이는 컨테이너는 host OS의 커널을 공유하는 반면 가상머신은 자기 만의 커널을 갖는다. 위에서도 말했듯이 가상머신이 기기별로 독립된 운영체제와 하드웨어 리소스를 차지하기 때문에 무겁고 고유의 운영체제를 부트해야하기 때문에 구동도 느리다.
추가로 컨테이너는 가상머신보다 휴대성이 있다. 다른 버전의 컴퓨터 및 운영체제에서도 이동이 가능한데에 비해 가상머신은 특정 호스트와 하이퍼바이저에 의존해서 구동된다. 이러한 이유로 컨테이너가 여러 앱들을 배포하고 관리하는데 선택되어진다.
컴퓨터 시스템을 운영하고 유지하기 위해 자주 사용되는 유틸리티와 프로그램의 세트를 의미한다.
Package managers
프로그램을 설치하고 업데이트하고 제거하는 소프트웨어 패키지
System monitoring tools
컨테이너가 사용하는 자원을 모니터링하는 도구
Logging utilities
컨테이너와 그 안의 앱이 만들어내는 로그 파일을 수집하는 도구
Networking utilities
컨테이너 내 네트워크 인터페이스 구축을 위한 도구
Security tools
컨테이너와 그 앱의 보안을 위한 도구