도커(Docker)는 무엇일까?

도커를 한마디로 정의하면 ‘데이터 또는 프로그램을 격리시키는 기능’을 제공하는 소프트웨어라고 할 수 있다.

이 기능은 주로 서버에 사용된다. 클라이언트 컴퓨터에서도 사용할 수는 있지만 현 시점에서는 서버에서 사용하는 것이 주 용도다.

개인용 컴퓨터나 서버에는 여러 가지 프로그램이 함께 동작한다. 지금 독자가 사용중인 컴퓨터에도 워드나 엑셀을 동시에 사용할 수 있을 것이다. 이와 마찬가지로 서버에도 아파치, MySQL등 여러 프로그램이 함께 동작한다.

도커는 이렇게 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공한다. 그것도 운영체제(비슷한 것) 통째로 격리하는 기능이다.

컨테이너와 도커 엔진

예를 들어, 개인용 컴퓨터 또는 서버 상의 환경을 마치 코스트코에서 판매하는 조립형 창고 같은 작은 방으로 반할하면 어떻게 될까. 그리고 이렇게 작게 쪼갠 독립된 창고에 데이터나 프로그램을 두는 것 이다.

이 조립형 창고를 컨테이너(container) 라고 한다. 그리고 이 컨테이너를 다루는 기능을 제공하는 소프트웨어가 도커(Docker) 다.

도커를 사용하려면 도커 소프트웨어의 본체인 도커 엔진(Docker Engine)을 설치해야 한다. 그리고 도커 엔진을 사용해 컨테이너를 생성하고 구동시킬 수 있다.

컨테이너를 만들려면 이미지가 필요하다

도커 엔진이 있어야 컨테이너를 만들 수 있다고 설명했다. 그러나 컨테이너를 만들려면 도커 엔진 외에도 컨테이너의 빵틀과도 같은 역할을 할 이미지가 필요하다.