도커는 컨테이너를 생성하고 관리하기 위한 도구이다.

컨테이너란?

소프트웨어 개발에서 컨테이너는 표준화된 소프트웨어 유닛이다.

컨테이너는 코드 패키지이며 해당 코드를 실행하는데 필요한 종속성과 도구가 포함되어있다

따라서 환경설정이나 의존성 같은 것을 신경 쓰지 않고 항상 표준화된 동작 결과를 보장한다.

도커는 이런 컨테이너를 구축하기 위한 도구일 뿐이다.

 

현재 최신 OS는 컨테이너 지원이 내장되어 있어 과거보다 도커를 설치해 실행하기 쉬워졌다.

 

독립적이고 표준화된 소프트웨어 유닛의 필요성

  • 여러 개발자간 개발 환경을 PC마다 맞추기 얼마나 번거로운지 생각해보기
    • 종속성, 서버 설정, DB연결 등등...
  • 로컬 환경, 개발 환경, 운영 환경 각기 다른 조건에서 동일한 하게 동작하기까지 환경 구축이 얼마나 힘든지 생각해보기

이처럼 독립적이고 표준화된 소프트웨어는 대단히 중요한 가치가 있음을 알 수 있다.

 

 

가상 머신과 도커의 차이는?

https://www.docker.com/resources/what-container/

  • 컨테이너는 코드와 종속성을 함께 패키징하는 앱 계층의 추상화 모듈이다.
  • 도커 엔진 하나에 여러 컨테이너가 동일한 시스템에서 실행될 수 있으며 각각 사용자 공간에서 격리된 프로세스로 실행되는 다른 컨테이너와 OS 커널을 공유할 수 있다.
  • 컨테이너는 VM보다 더 적은 리소스를 차지한다.(저장 공간, CPU 자원 등)

https://www.docker.com/resources/what-container/

가상머신은 운영체제 위에 또 다른 운영체제를 설치하기 때문에 운영체제가 기본적으로 가진 애플리케이션, 필수 바이너리 및 라이브러리 등이 중복되어 리소스를 소비한다. 

컴퓨터 전체를 캡슐화 한 것과 같아 도커보다 무겁고 느리다.

 

 

 

 

 

 

+ Recent posts