Docker 란?

Dev StoryTeller·2025년 1월 6일

인프라 알아보기

목록 보기
2/12

해당 글은 쿠버네티스 교과서 책과 공식 홈페이지(https://kubernetes.io/ko/)를 참조하여 작성되었습니다

Docker 란?

Docker는 컨테이너 환경 기반의 플랫폼으로, 애플리케이션을 패키징하고 실행할 수 있는 기능을 제공한다
인프라를 서버에 직접 설정해야하는 것과 달리, 컨테이너로 쉽게 생성/삭제가 가능하기에 마치 애플리케이션을 관리하는 것처럼 관리할 수 있다
또한 VM과는 달리 가벼운데다 애플리케이션을 실행을 위한 것들이 포함되어 있으므로, 확장성과 편리성이 좋다는 장점이 있다


Docker의 특징?

독립적이다!

각 컨테이너는 서로 독립적으로 동작하기에 간편하게 삭제하고 생성할 수 있다
이에 따라 무상태성을 지향하기에, 언제 어디서나 실행을 시켜도 같은 결과물이 나온다는 장점이 있다

확장성이 좋다!

앞서 말했듯 VM과 달리 가볍고 이미지를 통해 실행이 가능하기에 확장성과 이동성이 좋다


Docker 구성요소

Docker는 클라이언트 - 서버 아키텍처를 사용하며, 다음과 같은 구조를 가지고 있다

각 요소에 대해 간단히 알아보도록 하자

Client(docker)

Docker run, docker build, docker pull
데몬과 REST API, UNIX 소켓, 네트워크 인터페이스로 통신
별도의 명령어를 통해 데몬(dockerd)을 실행,데몬으로 하여금 컨테이너를 빌드/실행/배포하는 일을 수행


Docker Host

  • 데몬(dockerd)
    클라이언트에서 Docker API를 수신하여, 이미지, 컨테이너, 네트웤, 볼륨같은 Docker 개체를 관리한다

  • 이미지
    컨테이너를 만드는 방법이 포함된 읽기 전용 템플릿이다
    보통 DockerFile을 통해 이미지를 빌드하고 Resigtry에 푸시한다

  • 컨테이너
    이미지의 실행 가능한 인스턴스이다
    Docker API를 통해 컨테이너를 다룰 수 있다


저장소(Registry)

Docker 이미지, 도움이 되는 플러그인 등이 저장되어 있는 곳이다
기본적으로 Docker Hub에서 찾는다


그럼 이러한 Docker는 결국 어떻게 사용되는 것일까?
다음 편에서 알아보자

profile
개발을 이야기하는 개발자입니다

0개의 댓글