도커(Docker)
- 리눅스 컨테이너라는 커널 컨테이너 기술을 이용하여 만든 컨테이너 기술 중 하나
- 컨테이너 기반의 가상화 플랫폼
- 한줄 요약 : 가상머신처럼 독립적인 플랫폼을 만들긴하는데 대신, 호스트(로컬)의 커널을 공유한다
도커 컨테이너(Docker Container)
- 응용 프로그램과 그에 필요한 모든 것을 포함하는 경량화된 환경을 제공
- 호스트 시스템과 격리되어 실행
- 컨테이너를 생성하면, 독립된 공간(프로세스)이 생성됨
- 한줄 요약 : 필요한거 다 집어넣어 놓은 컨테이너
- 무엇을 실행할 땐 이 컨테이너 하나만 고대로 내려받아서 실행하면 버전이든 뭐든간에 충돌할 일 없이 잘된다~
Q. 도커는 가상 머신(VM, virtual Machine)과 무엇이 다른가?
- 일단 공통점, 둘은 격리된 환경에서 실행하기 위한 기술
- 격리된 환경이어야만 로컬에 영향을 주지 않음
- But, 구현 방식과 특징에서 차이가 있다
Q. 도커의 장점은?
- 이식성이 좋다
- 도커 컨테이너는 운영체제 or 환경에 독립적이라 어디서든 실행할 수 있다
- 가상화가 경량화 되어있다
- 가상 머신과는 달리, 운영체제의 커널을 공유
- 덕분에 빠르고 가볍다 (설치할게 적으니까!)
- 성능의 저하도 없다 (운영체제의 성능을 공유하니까!)
- 배포가 간편하다
- 도커 이미지를 사용하면 앱을 쉽게 패키지 하고 배포할 수 있다
- 스케일링 및 관리가 용이하다
- 여러 도커 컨테이너를 사용하면 앱을 쉽게 확장하고 관리할 수 있다
- 오픈소스이다
- 도커는 오픈소스로 제공된다
- 또한 커뮤니티에서 다양한 지원을 받고 있다
그렇다면 가상머신(VM, Virtual Machine)이란?
- 여러개의 운영체제를 하나의 호스트에서 생성하여 사용하는 방식
- 가상머신은 각각의 OS가 설치되어 사용됨
- 즉, 호스트와는 완전히 독립된 공간과 시스템 자원을 할당받아 사용
- 당연히 무겁겠죠?
- 그 이유야 당연히 만들 때마다 OS를 새로 설치하고 실행 해줘야 하니까!
- 완벽한 독립 운영체제를 생성할 수 있다는 장점
- 호스트의 공간과 시스템 자원을 할당받기 때문에 성능의 손실이 있다는 단점
- 또한 OS는 용량이 커서 OS가 설치된 VM 자체를 배포하기엔 부담스럽다는 단점
- 즉, 호스트와는 완전히 독립된 공간과 시스템 자원을 할당받아 사용
<추가할 내용>
- 목차가 적용되면 좋겠다는 점
- VM에 관한 내용이 없다는 점
- 이해한 바를 그림으로 전달할 수 있으면 좋겠다는 점