Docker란?
독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술
- 컨테이너 기반의 오픈소스 가상화 플랫폼..!!
- 컨테이너에 리눅스 application을 격리 기술을 사용해서 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트이다.
- docker 기술은 linux커널 등의 기술을 활용하여 프로세스를 분리함으로서 독립적으로 실행할 수 있도록 한다.
- 여러 프로세스나 애플리케이션을 서로 개별적으로 실행하여 인프라를 더 효과적으로 활용하고 개별 시스템을 사용할 때와 동일한 보안을 유지할 수 있도록 한다.
(이게 다 뭔말이지?? 싶지만 실습해보고 더 읽어보자 .. 곧 감이 잡힐겨)
Virtual Machine vs. Docker??
??? : 그럼.. 걍 가상머신 같은건가??? → 반은 맞고 반은 틀리다.

가상머신은..
- OS위에 존재하는 Hypervisor 를 통해 VM을 생성하고 구동하고 사진에 보이는 것처럼 각각의 VM요소마다 OS가 존재한다.
- 그래서 굉장히 무겁고 resource를 많이 잡아먹는다.
- 그치만 완벽하게 Host와 분리된다.
Docker컨테이너는?
- 각 컨테이너는 OS를 포함하지 않는다.
- docker-engine 위에 application 실행에 필요한 바이너리만 올라간다.
- 그래서 하드웨어 가상화 기술보다 훨씬 가볍다.
Docker의 특징이자 장점!
개발 과정에서 다른 라이브러리와 충돌하는 것을 방지하기 위해 격리된 환경이 필요할 때, 매우 유용하다. 환경종속성이슈에서 벗어날 수 있음!
- 확장성/이식성이 매우 뛰어나다!
- docker 가 설치되어있는 환경이라면 어디에서든 컨테이너를 띄울 수 있다
- 특정 회사, 서비스에 종속적이지 않다
- 개발 서버, 테스트 서버 생성이 매우 간편하다!
- 표준성
- 도커를 사용하지 않는 경우 ruby, nodejs, go, php로 만든 서비스들의 배포 방식은 모두 다 다르다.
- 컨테이너라는 표준으로 서버를 배포하므로 모든 서비스들의 배포과정이 동일해진다.
++ docker의 첫 등장..!
The future of Linux Containers (youtube.com)
- 어렵던 자원 격리 기술을 사용하기 쉽게 만들어준 도커의 첫등장은 컴퓨터 역사에서 큰 사건이라고 평가된다고 한다..

References
https://velog.io/@markany/도커에-대한-어떤-것-1.-도커란-무엇인가
https://velog.io/@gyumin_2/Docker란-무엇인가가-무엇인지-모르겠다