본문 바로가기
OS & Software/Software

컨테이너 그리고 도커란?

by 아이럽스토리지 2025. 2. 12.
반응형

컨테이너란?

컨테이너는 애플리케이션을 실행하는 데 필요한 모든것을 하나로 묶어 독립된 환경에서 실행되도록 만든 가상화 기술.

일반적으로 애플리케이션을 실행하려면 OS 환경에 맞게 설정하고, 라이브러리를 설치해야 합니다.

하지만 컨테이너는 필요한 모든 환경을 패키징하여 어디서든 동일한 실행이 가능하도록 해줍니다.

즉, 컨테이너를 사용하면 개발 환경과 배포 환경의 차이로 인해 발생하는 문제를 해결할 수 있습니다.

특히 기존 가상머신 방식보다 가볍고 빠르며 확장성이 뛰어납니다.

이 중에 Docker와 Kubernetes를 활용한 클라우드 환경에서 널리 사용되고 있습니다.

또한 개발자와 운영자를 위한 필수 기술로 자리 잡고 있다.

 

아래처럼 컨테이너는 가상머신과 비슷하지만 동작 방식이 와전히 다릅니다.

 


Docker란?

도커는 애플리케이션을 보다 효율적으로 실행하고 배포할 수 있도록 돕는 컨테이너 가상화 플랫폼입니다.

즉 컨테이너 기반의 오픈소스 가상화 플랫폼 중에 하나입니다.

전통적 가상머신보다 가볍고 빠르며, 확장성과 이식성이 뛰어나 IT 업계에서 필수적인 기술입니다.

개발 환경을 통일하고, 배포를 자동화하려고 한다면 도커는 필수입니다.

 

기존에는 소프트웨어를 실행하기 위해 운영체제(OS), 라이브러리, 종속성 등을 개별적으로 설치해야 했습니다.

하지만 도커는 애플리케이션과 실행에 필요한 모든 환경을 하나의 컨테이너로 묶습니다.

이렇게 하면 어디서든 일관된 실행이 가능합니다.

즉 도커는 개발 환경과 배포 환경의 차이를 최소화 시킵니다.

내 개발 컴퓨터에서는 잘 돌아가는데, 서버에서만 문제가 생기는 걸 방지합니다.


도커와 가상머신(VM)의 차이

도커와 가상머신(Virtual Machine)은 비슷한 개념처럼 보이지만, 동작 방식이 다릅니다.

 

가상머신(VM)

하드웨어 위에 하이퍼바이저(Hypervisor)를 설치하고, 그 위에 각각의 OS를 올려 격리된 환경을 제공합니다.

하지만 OS가 개별적으로 실행되기 때문에 무겁고, 하드웨어의 성능을 많이 요구합니다.

 

도커

운영체제 커널을 공유하면서 애플리케이션을 컨테이너 단위로 분리하여 실행합니다.

1개의 OS에서 돌아가기 때문에 불필요한 리소스 낭비가 적고, 실행 속도가 빠릅니다.

 


도커의 주요 구성 요소

 

도커를 이해하려면 핵심 구성 요소를 알아야 한다.

  • 도커 엔진: 컨테이너를 실행하는 핵심 프로그램
  • 이미지: 컨테이너 실행에 필요한 모든 요소(코드, 라이브러리, 설정 파일 등)가 포함된 템플릿
  • 컨테이너: 이미지를 기반으로 실행되는 독립적인 환경
  • 도커 허브: 다양한 이미지를 저장하고 공유하는 온라인 저장소


도커의 장점

  • 경량성: VM보다 훨씬 가벼운 구조로 빠르게 실행 가능
  • 이식성: 운영체제에 관계없이 동일한 환경에서 실행 가능
  • 확장성: 여러 개의 컨테이너를 조합하여 확장 가능
  • 자동화: CI/CD 파이프라인을 통해 자동화된 배포 및 운영 가능

도커의 활용 분야

  • 개발 환경 통일: 개발자가 동일한 환경에서 작업할 수 있어 "환경 차이" 문제 해결
  • 배포 자동화: CI/CD 파이프라인에서 활용하여 효율적인 배포 가능
  • 마이크로서비스 아키텍처(MSA): 각 서비스가 독립적으로 실행될 수 있어 유연한 서비스 운영 가능

 

 

 

반응형