본문 바로가기

About/Docker

[Docker] Docker의 개요

Docker란

Docker(도커)는 애플리케이션의 실행에 필요한 환경을 하나의 이미지로 모아 두고, 그 이미지를 사용하여 다양한 환경에서 애플리케이션 실행 환경을 구축 및 운용하기 위한 오픈소스 플랫폼. Docker는 내부에서 컨테이너 기술을 사용하고 있다.

 

https://www.docker.com/get-started

 

Get Started with Docker | Docker

Learn about the complete container solution provided by Docker. Find information for developers, IT operations, and business executives.

www.docker.com

 

프로그래머에게 Docker란?

웹 시스템 개발 시 애플리케이션을 제품 환경에서 가동하기 위해서는 다음과 같은 요소가 필요하다.

  • 애플리케이션의 실행 모듈(프로그램 본체)
  • 미들웨어 & 라이브러리 군
  • OS/네트워크 등과 같은 인프라 환경

Docker에서는 이러한 인프라 환경을 컨테이너로 관리한다. 애플리케이션 실행에 필요한 모든 파일 및 디렉토리들을 컨테이너로서 모아버린다. 이러한 컨테이너의 바탕이 되는 Docker 이미지를 Docker Hub와 같은 리포지토리(repository)에 공유한다.

 

Docker를 활용한 시스템 개발 흐름

프로그래머는 Docker를 사용하여 개발한 애플리케이션의 실행에 필요한 모든 것이 포함되어 있는 Docker 이미지를 작성하고 이 이미지는 컨테이너의 바탕이 된다. 작성한 이미지를 바탕으로 컨테이너를 가동시킨다. 이 이미지는 Docker가 설치되어 있는 환경이라면 기본적으로 어디서든지 작동되므로 '개발/테스트 환경에서 움직이지만 제품 환경에서는 움직이지 않는다' 는 리스크를 줄일 수 있다.

따라서 애플리케이션 개발부터 테스트, 제품 환경에 대한 전개를 모두 애플리케이션 엔지니어가 수행하는 것이 가능해진다. 

 

 

Docker 이미지와 Docker 컨테이너

Docker의 이러한 특징 때문에 앞으로 애플리케이션 엔지니어와 인프라 엔지니어의 경계가 모호해질 것이며, 두 엔지니어의 역량을 모두 갖춘 엔지니어가 경쟁력 있는 엔지니어가 될 것이라고 생각한다.

 

 

 

 

참고

https://book.naver.com/bookdb/book_detail.nhn?bid=13987575