[2024] 처음 시작하는 도커와 컨테이너 [천강민] 강의 수강 후 정리한 내용입니다.
처음 시작하는 도커와 컨테이너 강의 | 천강민 - 인프런
천강민 | , 실무에서, '도커 잘하네!' 라는 얘기가 나오도록 짧고 굵게![사진]실제 서비스 제공을 기반으로 고민하며 해결할 수 있다면, 이 강의는 수강하지 마세요.실무 요구사항을 해결해보는
www.inflearn.com
도커의 아키텍처
Docker는 클라이언트(Client), 도커 호스트(Docker Host), 레지스트리(Registry)로 구성된다.
일반적으로 클라이언트와 도커 호스트는 같은 PC에서 실행되며, 레지스트리는 외부에 위치할 수도 있다.
클라이언트 (Client)
- 역할: 사용자가 Docker와 상호작용하는 인터페이스
- 작동 방식:
- 사용자가 docker run, docker build, docker pull 등의 명령어를 입력하면 Docker 클라이언트가 이를 처리
- 클라이언트는 명령어를 Docker Daemon(도커 데몬)에 전달하며,
- 일반적으로 REST API를 통해 도커 호스트와 통신
- Docker CLI(Command Line Interface)가 클라이언트 역할을 수행
도커 호스트 (Docker Host)
- 역할: Docker의 핵심 요소로, 컨테이너를 실제로 생성하고 관리하는 시스템
- 구성 요소:
- Docker Daemon(도커 데몬)
- Docker의 핵심 엔진으로, 컨테이너 실행, 이미지 빌드, 네트워크 및 저장소 관리 등의 작업 수행
- 클라이언트의 요청을 받아 컨테이너를 생성하고 관리
- 컨테이너
- 애플리케이션이 실행되는 격리된 환경
- 필요한 라이브러리와 종속성을 포함하며, 도커 호스트에서 독립적으로 실행됨
- 이미지
- 컨테이너를 생성하기 위한 청사진(템플릿)
- 특정 소프트웨어와 환경을 포함하며, 도커 호스트에서 이를 기반으로 컨테이너 실행
- Docker Daemon(도커 데몬)
레지스트리 (Registry)
- 역할: Docker 이미지를 저장하고 배포하는 중앙 저장소
- 종류:
- Docker Hub (퍼블릭 레지스트리)
- 가장 많이 사용되는 공개 레지스트리
- 수많은 공식 및 사용자 생성 Docker 이미지가 저장됨
- docker pull nginx처럼 명령어를 입력하면, Docker Hub에서 해당 이미지를 다운로드
- 프라이빗 레지스트리
- 조직 또는 개인이 보안을 강화하거나 내부 이미지를 관리하기 위해 자체적으로 운영하는 레지스트리
- 기업 환경에서는 민감한 데이터를 보호하기 위해 자체 Docker 레지스트리를 구축하는 경우가 많음
- Docker Hub (퍼블릭 레지스트리)
운영체제를 설치하는 과정
Docker의 동작 방식은 운영체제를 설치하는 과정과 유사하게 이해할 수 있다.
docker run : VirtualBox 또는 VMware를 이용하여 운영체제를 설치하는 과정과 유사
- docker run 명령어를 실행하면 새로운 컨테이너가 생성되고 실행됨
- 이는 마치 VirtualBox나 VMware를 사용해 운영체제를 설치하고 실행하는 것과 같은 개념
docker build : 운영체제 이미지를 다운로드하거나 직접 빌드하는 과정과 유사
- 운영체제를 설치할 때, 기존의 ISO 이미지를 다운로드하여 설치할 수도 있지만, 직접 소스코드를 빌드하여 새로운 운영체제 환경을 만들 수도 있음
- docker build는 소스코드를 기반으로 Docker 이미지를 생성하는 과정과 같음
docker pull : 운영체제 이미지를 다운로드하는 과정과 유사
- docker pull을 사용하면 기존에 저장된 이미지를 다운로드할 수 있음
- 이는 운영체제 ISO 파일을 다운로드하여 사용하는 것과 유사함
- Docker 레지스트리는 운영체제 이미지를 다운로드할 수 있는 사이트(예: Ubuntu 공식 사이트)와 같은 역할을 함
즉, Docker에서 컨테이너를 생성하고 실행하는 과정은, 가상 머신에서 운영체제를 설치하고 실행하는 과정과 비슷하지만, 훨씬 가볍고 빠르다는 점이 핵심적인 차이점이다.
Docker 용어 정리
Registry : 우리가 만든 이미지를 저장하고 관리하는 공간
- 예: Docker Hub, 프라이빗 레지스트리
Image : 애플리케이션과 필요한 종속성, 패키지 등이 포함된 실행 파일
- 즉, 프로그램(소프트웨어) 자체
- 컨테이너를 실행하기 위한 템플릿(청사진) 역할
- 비유: 운영체제 설치 파일(ISO)
Container : 이미지를 기반으로 실행되는 프로세스
- 즉, 실제 실행되는 애플리케이션
- 격리된 환경에서 동작하며, 필요할 때 생성 및 삭제 가능
- 비유: 실제 실행 중인 운영체제(Windows, Ubuntu 등)
Docker : 컨테이너를 쉽고 효율적으로 관리하는 도구
- 사용자의 요청을 HTTP API를 통해 처리
- 주요 기능
- build → Dockerfile을 기반으로 이미지 생성
- run → 생성된 이미지를 기반으로 컨테이너 실행
- push → 생성한 이미지를 레지스트리에 저장 및 공유
즉, Docker는 이미지를 만들고, 실행하며, 공유할 수 있도록 돕는 플랫폼이다.
'Study > Docker' 카테고리의 다른 글
[Docker 입문] Registry & Repository (0) | 2025.03.09 |
---|---|
[Docker 입문] 컨테이너 띄워보기 (0) | 2025.03.06 |
[Docker 입문] 도커, 컨테이너, 쿠버네티스 (0) | 2025.02.27 |