Container

[Docker] Docker 란?

hhaeri 2022. 5. 9. 11:50

Docker : 컨테이너 기반의 오픈소스 가상화 플랫폼

도커는 애플리케이션을 신속하게 구축 및 배포할 수 있는 소프트웨어 플랫폼입니다.

도커를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제 없이 실행 되는 것을 보장할 수 있습니다.

 

VM과 컨테이너

가상화 방식에는 vm과 컨테이너가 있습니다.

 

VM은 하이퍼바이저 위에 게스트OS가 올라갑니다.

하드웨어를 논리적으로 가상화하고, 그 위에 OS를 구성합니다. 때문에 hostOS의 종류에 구애 받지 않으며 독립적으로 운영할 수 있습니다.

 

컨테이너는 OS 수준의 가상화 기술로 커널을 공유하면서 프로세스를 격리된 환경에서 실행합니다.

그렇기 때문에 vm보다 가벼우며 빠르다는 이점을 가지고 있습니다.

컨테이너란 격리된 공간에서 프로세스가 동작하는 기술을 말합니다.

VM은 OS 전체를 가상화하여 사용하기 때문에 무겁습니다. 그래서 실제 운영환경에서 사용하기엔 불편한 점이 있었습니다. 이를 개선하기 위해 프로세스를 격리하는 컨테이너가 등장하게 됩니다.

CPU와 메모리를 필요한만큼만 추가로 사용하기 때문에 성능적으로 손실이 거의 없습니다.

 

Docker 의 장점

1. 쉽고 빠른 실행 환경 구축

- 팀 단위 작업을 할 때 개발 환경 구축을 개개인별로 하다보면 각자 다르게 구축될 수 있습니다.

  하지만 도커 컨테이너로 초기 개발환경을 배포하게 되면 프로젝트 및 개발 실행환경을 강제화할 수 있습니다.

2. 가볍고 빠른 실행 속도

- OS를 재구동해야하는 VM과 다르게 컨테이너는 상대적으로 시작이 빠릅니다.

3. 비용 절감

- 컨테이너의 크기는 매우 작기 때문에 하나의 물리 서버 위에 여러개의 컨테이너를 구동 시킬 수 있습니다.

 

Docker 의 단점

1. 리눅스 친화적

- window와 mac 환경에서는 linux 가상머신 위에서 도커를 구동시킬 수 있습니다.

  도커에서는 linux 기반 os에서 사용해야하기 때문에 플랫폼 의존적이라는 단점이 있습니다.