도커란, 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 이를 통해 개발자는 어떤 환경에서든지 애플리케이션을 빠르고 쉽게 배포하고 실행할 수 있습니다. 도커는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다.
도커와 기존 VM 의 차이
도커
- 도커 컨테이너에서 돌아가는 어플리케이션은 컨테이너가 제공하는 격리 기능 내부에 있지만 동일한 커널을 공유한다.
- 하이퍼바이저와 게스트OS가 필요하지 않으므로 더 가볍다
- 컨테이너 내부에서 실행되는 프로세스는 호스트 시스템에서 볼 수 있다
- APP을 실행하기 위해서 호스트 OS위에 이미지만 배포하면 됨 → 가벼움
VM
- 호스트OS 안에 독립적인 게스트OS가 존재한다.
- 사용하기 비교적 간단하지만 느리다.
- VM을 띄우고 자원을 할당한 다음 게스트OS를 부팅하여 APP을 실행 → 무거움
도커 컨테이너는 동일한 커널 위에서 논리적으로 분리되어 있음.
따라서 어느 프로세스에서 장애가 나도 다른 프로세스에 영향을 주지 않는다.
어떻게 도커 컨테이너를 격리 시키나요?
리눅스의 커널 기능인 C Group과 네임스페이스를 사용한다.