: 컨테이너는 애플리케이션과 그 실행에 필요한 모든 요소를 하나로 패키징한 것
쉽게 정리하면 애플리케이션을 실행하는데 있어 필요한 모든것을 담은 상자
: 기존 개발 환경에서는 로컬과 서버간 환경차이 이슈가 자주 발생했고, VM은 무겁고 비효울적이였다. 어디서든 동일한 환경에서 실행할 수 있고 애플리케이션을 실행하는 과정에서 필요한 모든 의존성을 하나로 패키징을 한 후 경량화하여 최적의 환경을 만들 수 있기 때문에 등장했다
- 경량화 : 컨테이너는 가상 머신(VM)보다 훨씬 가볍고, 운영 체제(OS) 위에서 실행되며 필요한
라이브러리나 의존성만 패키징하므로 자원을 더 효율적으로 사용
- 이식성 : 개인 환경이던 클라우드 환경이던 어떤 OS, 어떤 환경에서도 동작 가능
- 비용절감 : 컨테이너 자체 애플리케이션 환경에 대한 관리만 요구되므로, 지속적 서버관리 비용을 절감할 수 있다
- 격리성 : 개발팀과 운영팀의 업무 분리로 각자의 업무와 세분화된 관리에 집중할 수 있다.
즉, 컨테이너는 DevOps workflow 구성에 최적이다.


Docker 는 무엇인가 ?
- 여러 계층의 Application을 container로 분리, 연결하여 실행하는 MSA프로젝트에 용이하다
- Application의 infra(runtime)는 Image를 통해 제공하고 Public or Private 하게 공유 가능
- Github과 유사한 방식으로 Docker Hub에서 제공
- 제공된 Image를 기반으로 Application을 제공하고 Container화 가능

가상화 : 일반적으로 서버,스토리지,네트워크,애플리케이션 등을 가상화 하여 하드웨어 리소스를 효율적으로 사용하는게 목적, 실제로 기업에서는 효율적인 작업을 활용하여 자동화된 IT관리, 빠른 재해 복구 등의 장점이 있음.배포 방식의 차이
처음 공부하는 단계라서 그런지 너무 어려웠다.. GustOS를 두고 원하는 애플리케이션을
설치하는 하드웨어 수준의 가상화, 운영체재의 kernel 공유 등 단어들이 너무 어려워서
추후에 디벨롭 할 계획이다!