Docker

Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 컨테이너 소프트웨어 플랫폼입니다. 

Docker란 Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다.

기존 OS를 가상화 시키던 것과 달리 컨테이너는 OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식으로 이루어집니다

도커 도입시 장점

1.개발환경에 구애받지 않는다. ( Windows, Mac, Linux 등 다양한 OS환경에서 사용가능 ) 

2.프로세스 단위로 격리시켜 동작하기 때문에 가볍다.

3.독립적이며 문제발생시 빠른 제배포 가능 

물리서버 / 가상서버 / 컨테이너 비교

자원(CPU, Memory) 격리 불가
OS 간 호환성 문제
Application 자동 확장 불가

자원(CPU, Memory) 격리
하이퍼바이저 및 Guest OS 부하
단점
이기종 VM 기술간 호환성 문제
애플리케이션 자동 확장 불가

자원(CPU, Memory) 격리
OS KerneI을 공유 프로세스로 시작
표준 컨테이너 기술로 호환성 제공
자동 확장 및 자동 치유 지원
하이브리드 클라우드 환경

Key feature

가벼운 가상화 기술

가상화와 비교하면 컨테이너는 OS 없이 프로세스와 파일 시스템을 분리하는 형태이기 때문에 크기가 작고 가볍습니다.

또한 가상화를 위한 하드웨어 에뮬레이트 (emulate) 단계 없이, 분리된 공간을 만들기 때문에 오버 헤드가 줄어 듭니다.

높은 집적도

여러 개의 컨테이너를 만들어서 실행 중이라고 해도 OS는 하나이므로, 가상머신에 비해 고밀도화가 가능합니다.

또한 컨테이너에서는 실행되는 프로세스를 위한 메모리만 필요하기 때문에 낮은 사양의 환경에서 더욱 활용도가 높아집니다.

작은 이미지 크기

가상화 기술은 가상머신마다 OS (게스트 OS)가 필요합니다. 따라서 VM의 실행에 필요한 이미지 파일 (이하 VM 이미지) 은 애플케이션과 실행에 필요한 라이브러리 그리고 게스트 OS가 포함되어 있습니다.

반면 컨테이너는 호스트 OS를 사용하여 시작합니다. 가상머신과는 달리 게스트 OS는 포함하지 않기 때문에 VM 이미지와 보다 파일 크기가 작아 이동성이 우수합니다.

이동성 ( PORTABILITY)

컨테이너는 이동성이 높기 때문에 개발자가 자신의 PC에서 만든 컨테이너를 그대로 퍼블릭 클라우드에 가져가 실행할 수 있습니다.

이로 인해 대량의 마이크로 서비스의 빠르고 효율적인 배치 및 서비스 단위로 유연한 확장이 가능하며, 마이크로 서비스를 통해 얻는 효과를 극대화 할 수 있습니다.

빠른 시작과 종료 시간

컨테이너는 실행 된 OS에서 응용 프로그램 본체와 미들웨어를 실행하기 만하면되기 때문에 응용 프로그램의 시작 시간은 VM보다 크게 단축합니다.

컨테이너를 실행하는 것은 OS 입장에서 보면 단순하게 프로세스를 시작하는 것이기 때문에 일반적인 프로세스가 시작하는 것과 별반 차이가 없습니다. 즉 매우 빠르게 시작할 수 있는 것입니다.

일관성 있는 환경

개발자는 컨테이너를 이용해, 다른 애플리케이션과 분리된 애플리케이션에 최적화된 환경을 생성할 수 있습니다.

컨테이너는 애플리케이션에 필요한 소프트웨어 종속 항목(프로그래밍 언어 런타임 및 기타 소프트웨어 라이브러리의 특정 버전 등)도 포함할 수 있습니다.

그 결과 자연히 생산성이 향상될 수밖에 없습니다. 개발자와 IT 운영팀이 버그를 잡고 환경 차이를 진단하던 시간을 줄이고 사용자에게 신규 기능을 제공하는 데 집중할 수 있기 때문입니다.

다양한 운영 환경 지원

컨테이너는 Linux, Windows, Mac OS, 가상 머신, 베어메탈, 개발자 PC, 데이터 센터, 온프레미스 환경, 퍼블릭 클라우드 등 사실상 어느 환경에서나 구동되므로 개발 및 배포가 크게 쉬워집니다.

계층화된 이미지 형식으로 사용되기 때문에 이동성도 매우 뛰어납니다. 소프트웨어 구동 환경이 무엇이든 컨테이너를 사용할 수 있습니다.

가상 OS형태로 독립환경 제공

컨테이너는 CPU, 메모리, 스토리지, 네트워크 리소스를 OS 수준에서 가상화하여 개발자에게 기타 애플리케이션으로부터 논리적으로 분리된 OS 샌드박스 환경을 제공합니다.

배포 편이성

컨테이너를 사용하면 애플리케이션과 종속 항목을 버전 제어가 쉬운 하나의 패키지로 묶어 팀 내의 여러 개발자가 쉽게 복제하고 클러스터 내의 머신으로도 간편하게 복사할 수 있습니다.

이를 서비스 기반 아키텍처와 결합하면 개발자들이 논리성을 판단해야 하는 단위 자체가 훨씬 작아지므로 민첩성과 생산성이 크게 향상됩니다. 그 결과 애플리케이션의 개발 및 테스트, 배포, 전반적인 관리가 훨씬 쉬워집니다.

연락처

서울특별시 강서구 마곡중앙4로 22 A동 513, 514호
(주) 티아이솔루션
Tel. 02-6933-7890
대표자 : 김낙영
사업자번호 : 817-86-00926