[Docker]도커컨테이너

Jay·2022년 8월 17일
0

해당 포스트 내용은 엘튼 스톤맨의 "도커 교과서"를 읽고 이해한 내용을 바탕으로 작성하였습니다.

목표

  • 컨테이너는 무엇인가?
  • 컨테이너가 애플리케이션을 경량화하여 실행할 수 있는 이유는 무엇인가?

컨테이너란

컨테이너

컨테이너는 실행 가능한 애플리케이션 코드가 의존하는 라이브러리 및 종속 항목과 함께 패키징되어있는 소프트웨어 실행 유닛이다. 컨테이너의 애플리케이션 프로세스를 격리하기 위해 운영체제의 기능을 활용하고, 컨테이너 애플리케이션이 액세스할 수 있는 CPU, 메모리, 디스크를 제어하기 위해 운영체제 가상화 형식을 사용한다.

컨테이너 환경 안에 들어 있는 애플리케이션을 표현한 것이다. 호스트명, IP주소, 디스크 드라이브(파일 시스템) 모두 도커가 만들어낸 가상의 리소스로 이들이 애플리케이션이 동작할 수 있는 환경을 구성하게 된다. 즉 컨테이너는 실행할 애플리케이션과 애플리케이션을 실행할 컴퓨터의 논리적 단위라고 할 수 있다.


컨테이너 vs VM

밀집
컴퓨터 내에서 CPU와 메모리가 허용하는 범위 내에서 가능한 많은 수의 애플리케이션을 실행하는 것

격리
애플리케이션이 독립된 환경에서 실행되는 것

다양한 애플리케이션이 상호작용하는 서비스가 작동하고 있는 컴퓨터에서 밀집과 격리를 만족시킬 수 있는 방법은 가상머신(Virtual Machine)을 사용하는 방법이 있다. 가상머신은 애플리케이션이 실행될 독립적인 환경이 생긴다는 점에서는 컨테이너와 커다란 차이점은 없다. 다만 가상머신은 호스트 컴퓨터와 운영체제를 공유하지 않고 가상머신에 별도의 운영체제를 사용한다. 이러한 운영체제는 CPU와 메모리 자원을 상당량 차지하기 때문에 격리는 만족하지만 밀집은 제공하지 못한다.
컨테이너는 가상머신과는 달리 호스트 컴퓨터의 운영체제를 공유한다. 이 덕분에 가상머신에서 운영체제가 사용하는 컴퓨터 자원을 다른 애플리케이션을 실행시키는데 사용할 수 있기 때문에 밀집 또한 제공할 수 있다.


목표확인

  • 컨테이너는 무엇인가?
    - 애플리케이션, 라이브러리, 종속 항목등을 다른 컴퓨터에 이식하여 실행할 수 있도록 만든 것.
  • 컨테이너가 애플리케이션을 경량화하여 실행할 수 있는 이유는 무엇인가?
    - 가장 큰 이유는 각 컨테이너가 독립적인 운영체제를 가지지 않고 호스트 컴퓨터의 운영체제를 공유하기 때문이다. VM의 경우 각 가상머신이 독립적인 운영체제를 가짐으로써 격리를 달성하지만 운영체제는 호스트 컴퓨터의 CPU와 메모리 자원을 상당량 차지하게 된다. 하지만 컨테이너의 경우 별도의 운영체제가 필요하지 않기 때문에 더욱 많은 컨테이너 혹은 더욱 많은 애플리케이션을 실행할 수 있다.



참조 : https://www.ibm.com/kr-ko/cloud/learn/containers

0개의 댓글