본문 바로가기
기타

[Docker] 도커 기본 개념

by 자몽먹은토끼 2024. 10. 26.
728x90
반응형

 

 

Docker (도커) 란?

 

 

 

도커의 구성요소

 

  • 가장 하단의 Infrastructure은 컴퓨터가 가지는 사양을 의미. CPU나 RAM등이 이에 해당.
  • 그 위의 Host Operating System은 컴퓨터의 OS를 의미. 예를 들어 윈도우, 맥, 리눅스 등이 이에 해당.
  • 해당 OS위에 Docker가 올라가게 되는데 Docker에는 여러 컨테이너들이 올라가게 된다. 그림에서는 App으로 표현되었다.

 

도커는 리눅스 환경 기반이기 때문에, 도커에 올리는 어플리케이션들은 리눅스에서 동작하는 어플리케이션만 올릴 수 있다. 윈도우 용 프로그램이 아니어도 가동할 수 있도록 만들어준다. 예를 들어 윈도우 환경에서 mac os 기반의 어플리케이션을 사용하기 위해 도커를 사용하는 것은 안된다. 

> 도커는 리눅스 환경이 아닌 곳에서 리눅스 어플리케이션을 가동하기 위해 사용된다.

 

 

 

 

 

 

 

 

Docker  VS  VM

 

 

그럼 보통 사용하는 vm과는 뭐가 다를까?

 

vm은 virtual marchine으로, 가상 머신을 의미하는데

윈도우에서 리눅스환경을 사용해야 할 때, 윈도우를 밀고 리눅스를 사용할 수 없으니

가상머신을 이용하여 os를 가상환경에 설치하여 사용하는 방식이다.

 

그럼 도커도 리눅스 환경을 실행하기 위해 사용하는 건데 뭐가 다를까

 

VM은 실제 운영체제를 설치해서 사용하는 방식.

Docker은 운영체제가 가지는 주요 기술들, 커널의 기술을 가져다 os처럼 보이도록 환경을 셋팅해 app을 실행하는 방식.

그래서 docker는 쓸데없는 os 기능들은 배제.(필요 구성요소만 가짐)

구성요소가 적어지므로 오버헤드가 적다는 특징이 있다.

 

 

 

도커 컨테이너 구조

 

도커 컨테이너는 컨테이너 레이어 (Container Layer)이미지 레이어 (Image Layer)로 구성되어 있음.

 

  • 컨테이너를 생성하고 가동하기 위해, '이미지'가 필요
  • 이미지는 여러개의 이미지 레이어로 구성. 읽기 전용 계층.
  • 이미지를 컨테이너에 올리면 한 계층이 최상단에 추가되는데 이를 컨테이너 레이어 라고 부름.
  • 컨테이너 레이어는 읽기(read)와 쓰기(write)가 가능함
  • 컨테이너가 실행되면서 수정되거나 추가되는 변경사항들은 컨테이너 레이어에 저장된다.

 

 

 

  • 컨테이너 레이어는 각기 다른 컨테이너가 공유하지 않는 계층
  • 따라서 이미지 레이어를 각 컨테이너가 공유한다.

 

  • 이미지 레이어를 공유하면 용량을 절약할 수 있다.
  • 또한, 이미지 레이어가 동일하기 때문에 각 컨테이너의 퍼포먼스가 동일하게 나타난다.
728x90
반응형