본문 바로가기
개발 - Coding/Infra

도커(Docker) 개요

by dev_jinyeong 2022. 12. 11.

도커 개요

도커란?

도커 공식 이미지

도커란 데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어이다.

격리가 필요한 이유

프로그램을 실행하기 위해서는 그 프로그램의 실행 환경이나 라이브러리가 필요하다.

한 시스템 환경에서 여러 프로그램을 실행하게 되면 프로그램 버전 간 의존성 문제가 생길 수 있다.

 

⇒ 도커 컨테이너를 이용해서 프로그램을 격리하면 문제 해결 가능

 

도커 컨테이너는 이미지로 내보낸 다음 다른 도커 엔진에서 다시 실행 가능하다.

 

⇒ 이를 이용해서 물리적 환경의 차이, 서버 구성의 차이를 무시 가능

💡격리 이유: 프로그램 의존성 문제 해결 & 하드웨어 의존성 문제 해결

도커의 동작 방식

  1. 도커는 Linux 위에서 실행된다.
  2. 도커 엔진 위에서 컨테이너가 동작한다.
  3. 컨테이너에서 도커 이미지를 실행시킨다.

리눅스 OS에서 도커의 동작방식

Linux OS 이외 운영체제에서 동작방식

리눅스 OS 이외 OS에서의 동작방식

Windows나 Mac 등 Linux OS 외에 다른 운영체제에서 동작하는 경우, 내부적으로 Linux OS를 포함시켜서 도커를 실행하는 방식으로 동작한다.

따라서 도커는 무조건 Linux OS 위에서 동작한다고 할 수 있다.

도커와 컨테이너 내 프로그램은 Linux 기반

컨테이너에서 동작시킬 프로그램은 Linux용 프로그램이다.

컨테이너 내부 동작 원리상 Linux용 프로그램만 동작할 수 있기 때문이다.

 

단, 컨테이너 내부에서 Linux OS가 동작하고 있는 것은 아니다.

이를 가상화 프로그램과 비교하면 차이점을 명확하게 알 수 있다.

 

VMWare 등 가상화 프로그램의 경우 모든 구성요소를 소프트웨어적으로 구현하였기 때문에 실제 컴퓨터와 다름없다.

그러나 컨테이너 내부 동작은 실제 동작의 일부를 물리적 서버에 위임한 상태이다.

 

 따라서 컨테이너 내부에서도 Linux OS가 동작하고 있는 것은 아니다.

 

실제로는 Linux OS와 비슷한 무언가가 동작하고 있다고 이해할 수 있다.