과거 장비에 OS를 깔고 각각의 시스템을 구축하는 방식 이후 장비에 hypervisor X를 이용해 각각 VM을 만들어 application을 올려 사용하였다.
그리고 지금은 어느 장비에서든 OS에 container engine을 올리고 application이 담긴 container를 돌려 구현하는 방식을 많이 채용하고 있다. 앞으로 이런 구조를 이해하고 업무를 container부터 알아야한다고 생각한다.
도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼형태이다.
여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 들어 있다. 그러므로 실행 중인 환경에 관계 없이 언제나 동일하게 실행됩니다.
컨테이너는 도커가 등장하기 전에도 있던 기술로, 격리된 공간에서 프로세스가 동작하는 기술입니다.
기존의 VMware나 VirtualBox를 이용한 가상화 방식은 호스트 OS 위에 게스트 OS 전체를 가상화하여 사용하는 방식입니다. 여러가지 OS를 가상화할 수 있고 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용하기 어려웠습니다. 이를 개선하기 위해 프로세스를 격리하는 방식이 등장합니다. 이 과정에서 나온 것이 container이고 CPU와 메모리를 필요한 만큼만 추가로 사용하고 성능적으로 손실이 거의 없습니다.