도커 사용이유

Date:     Updated:

카테고리:

태그:

Docker란 ?

🐋 Docker란 Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼으로 0.9버전 부터는 
직접 개발한 libcontainer 컨테이너를 사용하고 있다.

Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 컨테이너에는 라이브러리,
시스템 도구 등 소프트웨어를 실행하는데 필요한 모든 것이 포함되어 있다.

VM 가상화 플랫폼 vs Docker 가상화 플랫폼

  • Virtual machine 환경은 Host OS 위에 가상화를 위한 Hypervisor 엔진과 그 위에 Guest OS를 올려 용한다.
    이는 가상화된 하드웨어 위에 OS가 올라가는 형태로 거의 완벽하게 Host와 분리된다.
  • 컨테이너 기반 가상화는 Docker 엔진 위에 Application 실행에 필요한 바이너리만 올라간다.

image

  • OS 가상화는 Host OS와 완전히 분리되어, Host OS위에 또 다른 Guest OS를 올리기 때문에 무겁고 느릴수 밖에 없다.
  • 하지만 컨테이너 기반 가상화는 Host OS 그리고 Docker 엔진위에서 필요한 바이너리와 라이브러리를 통하여 동작한다.
    Host 커널 위 새로운 OS가 동작하는게 아니고 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다.
    → CPU나 메모리를 프로세스가 필요한 만큼만 사용하기 때문에 자원의 낭비또한 적다.

컨테이너를 사용하는 것은 가상 머신을 생성하는 것이 아니라 Host OS가 사용하는 자원을 분리하여 여러 환경을
만들 수 있도록 하는 것이다.

Docker의 장점은 단지 빠른 가상화를 제공하는 것이 아니다.

1. 더 많은 소프트웨어를 더 빨리 제공

  • Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있다.

2. 운영 표준화

  • 작은 컨테이너식 애플리케이션을 사용하면 손쉽게 배포하고, 문제를 파악하고, 수정을 위해 롤백할 수 있다.

3. 원활하게 이전

  • Docker 기반 애플리케이션을 로컬 개발 시스템에서 AWS의 프로덕션 배포로 원활하게 이전할 수 있다.

4. 비용 절감

  • Docker 컨테이너를 사용하면 각 서버에서 좀 더 쉽게 더 많은 코드를 실행하여 사용률을 높이고 비용을 절감할 수 있다.

🎯 GURURU 서버 아키텍쳐에서 DOCKER를 사용 한 이유

여러가지 이유 중 가장 큰 이유는 운영 표준화에 있었다. 서버를 구성하며 동일한 환경을 보장받으며, 편리한 운영을 위한 환경을 만들고자 하였다.
또한 차후 서버 스케일링을 위한 환경구성을 미리 구성해보았다.

CONTINUOUS INTEGRATION & DELIVERY

환경을 표준화하고 언어 스택 및 버전 간의 충돌을 제거하여 애플리케이션을 더욱 쾌적하게 제공.

image

CS 카테고리 내 다른 글 보러가기

댓글남기기