Docker (도커) 개요

Docker (도커) 는 Docker, Inc (예전에는 dotCloud라는 사명)라는 회사가 개발하고있는 컨테이너 형 가상화 환경을 제공하는 오픈 소스 소프트웨어입니다.

도커는 애플리케이션에 대한 개발 (Developing) , 이동 (Shipping) , 실행 (running )을 위한  오픈 플랫폼으로 애플리케이션을 신속하게 구축하고 배포할 수 있습니다.

기존의 가상화 솔루션인 하이퍼 바이저 타입의 제품에 비해 디스크 사용량은 적고, 가상 환경 생성 및 시작은 빠르고 성능 저하가 거의 없다는 장점이 있습니다.

도커를 사용하여 하나의 호스트 OS 위에 가상으로 여러 OS를 ‘가볍고’에 ‘쉽게’에 동작시킬 수 있습니다.


도커 장점

도커는 컨테이너 형 가상화 서비스를 제공합니다. 컨테이너 형 가상화는 호스트하는 OS와 게스트 OS 사이에서 kernel을 공유하고 있습니다.

이러한 특징으로 인하여 다음과 같은 장점이 Docker에 존재합니다.

  • 게스트 OS는 호스트의 Kernel을 직접 사용하기 오버 헤드가 작고 빠름
  • 게스트 OS가 각각 Kernel이 없기 때문에, Memory 소비량과 Disk 소비를 절약
  • 필요로하는 자원이 적기 때문에 많은 게스트 OS를 운영
  • Kernel을 새로 시작할 필요가 없기 때문에 게스트 OS 부팅이 빠름

또한 도커 컨테이너를 시작할 때 각 컨테이너마다 Disk에 데이터를 가지는 것이 아니라 “하나의 이미지에서 여러 컨테이너를 생성”하는 방식입니다.

따라서 도커에는 다음과 같은 장점도 있습니다.

  • 컨테이너의 이미지 (템플릿)에서 컨테이너 (인스턴스)를 만들기 때문에 동일한 구성의 OS를 쉽게 여러 개 만들수 있습니다.
  • 테스트를 통과한 이미지는 프로덕션 환경에서도 즉시 사용할 수 있습니다. (개발 및 배포주기가 빠름)

Docker and JBoss Data Virtualization

Docker 에서 컨테이너를 이용하여 JDV (JBoss Data Virtualization) 워크샵 데모 실행하기

JDV Workshop 실습을 위한 Docker 컨테이너를 만드는 과정은 매우 간단합니다. 또한 컨테이너에 실습에 필요한 JDV 설치, PostgeSQL 설치, 각종 파일 복사, 환경 설정들도 이미 정의된 Build 스크립트에 의해서 자동으로 설치/구성 됩니다.

하이브리드 클라우드 / 멀티 클라우드 - Kubernetes ( 쿠버네티스 )

Docker 를 구글,레드햇 그리고 오픈스택 등에서 채택

Google Cloud Platform 담당 수석 직원 소프트웨어 엔지니어 Joe Beda 의 슬라이드에 따르면 “Everything at Google runs in a container”라고 언급한 만큼 구글에서 컨테이너형 가상화는 매우 중요한 기술입니다.
모든 Google 서비스와 Google 내부에서 사용되는 도구도 이미 Docker 같은 컨테이너 형 가상화 기술에서 실행되고 있습니다.

오픈소스 도커 ( Docker ) 소개

도커 ( Docker )는 2013년 오픈소스 슈퍼루키 선정

도커 ( Docker ) 는 2013년 오픈소스 라이센스를 검증하는 블랙 덕 소프트웨어에서 매년 뽑는 “오픈 소스 올해의 루키” 중 하나로 선정된 오픈소프 커뮤니티 제품입니다.
Docker는 PaaS 공급 업체 DotCloud 가 PaaS의 벡엔드로 사용하는 컨테이너 기반의 가상화 소프트웨어를 오픈소스로 공개한 것입니다.
http://www.docker.io/
Red Hat 의 RHEL 6.5 버전에도 Linux Containers (LXC) 을 기반으로하는 컨테이너 엔진인 docker 를 포함하게 되었다.
Docker 는 하나의 Linux 시스템에 여러 Linux 시스템 운영을 위한 소프트웨어이다. 시스템의 분리에는 Linux Containers (LXC)을 파일 시스템은 Advanced multi layered unification filesystem (Aufs)를 사용하고 있다. Docker은 Go로 작성되었습니다. 소스 코드 전체는 대략 15,000 줄 정도 된다.