[CKAD] Docker의 개념 및 정의

HongSeokChoi·2025년 8월 27일

ckad

목록 보기
2/14

Docker는 정확히 무엇일까?

Docker는 흔히 컨테이너 기술이라고 부르며, 컨테이너를 생성하고 관리하기 위한 도구입니다.
그렇다면 정확히 "컨테이너"란 무엇일까요?


소프트웨어에서 컨테이너란?

  • 표준화된 소프트웨어 유닛이다.
  • 코드 패키지이며, 해당 코드를 실행하는 데 필요한 종속성과 도구가 포함된다.

예를 들어, NodeJS 애플리케이션을 구축한다고 가정해 봅시다.

여기서 잠깐 ⁉️ NodeJS란?

  • NodeJS는 서버에서 JavaScript 코드를 실행할 수 있게 해주는 런타임입니다.
  • 만약 Docker로 NodeJS 애플리케이션을 컨테이너로 만든다면,
    그 컨테이너에는 애플리케이션 소스 코드 + NodeJS 런타임 + 필요한 도구가 모두 들어있습니다.
  • 따라서 동일한 NodeJS 컨테이너는 어디서 실행해도 항상 동일한 결과를 제공합니다.

즉, 컨테이너란 “코드 + 실행 환경을 한데 묶은 패키지”라고 할 수 있습니다.


비유로 이해하기 – 🧺 피크닉 바구니

  • 피크닉 바구니에는 필요한 모든 것이 들어있습니다. (음식, 접시 등)
  • 바구니만 들고 가면 어디서든 같은 피크닉을 즐길 수 있습니다.
  • 다른 사람에게 바구니를 줘도, 그 사람도 같은 음식을 같은 방식으로 즐길 수 있습니다.

👉 이 개념이 바로 컨테이너와 같습니다.


또 다른 비유 – 🚢 물류 컨테이너

우리가 아는 물류 컨테이너 박스를 떠올려 봅시다.

  • 컨테이너 안에 상품을 넣으면, 다른 컨테이너와 섞이지 않고 독립적으로 보관됩니다.
  • 컨테이너는 어떤 배나 트럭에도 실을 수 있고, 동일한 규격을 따릅니다.

👉 소프트웨어 컨테이너도 마찬가지로 독립적이고 이식 가능한 단위입니다.


정리하자면

  • Docker는 이러한 소프트웨어 컨테이너를 빌드하고 관리하는 툴입니다.
  • 컨테이너에는 애플리케이션, 런타임, 종속성 등이 모두 포함됩니다.
  • Docker를 쓰면, 어디서든 동일한 환경에서 동일한 애플리케이션을 실행할 수 있습니다.
  • 따라서 추가 설치나 환경 차이에 대한 걱정이 줄어듭니다.

Docker의 장점

  • 컨테이너 지원이 최신 운영 체제에 내장되어 있거나 최소한 시작하기 쉽고, 도커를 모든 최신 운영 체제에 설치하여 작업할 수 있다는 것입니다.

  • 도커는 결국 이러한 컨테이너의 생성 및 관리 프로세스를 단순화하는 도구

  • 컨테이너를 만들지 않아도 되지만, 컨테이너를 만드는 것은 사실상의 표준 -> 작업을 매우 간단하게 만들기 때문입니다.

profile
Network/Cloud

0개의 댓글