728x90
반응형
🐳 도커(Docker)란?
도커(Docker)는 리눅스 컨테이너 기술을 기반으로 애플리케이션을 보다 쉽고 효율적으로 실행 및 관리할 수 있도록 도와주는 오픈 소스 플랫폼입니다.
도커는 **도커 엔진(Docker Engine)**을 중심으로 동작하며, 이 엔진이 컨테이너의 생성과 제어를 담당하는 도커 생태계의 핵심입니다.
✅ 도커의 핵심 개념
- 가상화(Virtualization): 하나의 물리 서버에서 여러 개의 가상 머신을 생성해 자원을 효율적으로 활용하는 기술
- 컨테이너(Container): 호스트 OS의 커널을 공유하면서, 격리된 실행 환경을 제공하는 기술
요약: 도커는 격리된 독립 환경을 제공하여 하드웨어 자원을 효율적으로 사용하는 기술입니다.
⚒️ Virtual Machine vs Docker Container
💡 기존의 가상머신(Virtual Machine)
- 하이퍼바이저(Hypervisor)를 통해 게스트 OS를 생성
- 각 가상머신은 완전한 운영체제(ex. Ubuntu, CentOS)를 포함
- VM 툴: VirtualBox, VMware 등
- 단점:
- 하이퍼바이저를 통한 자원 관리로 성능 손실 발생
- OS 전체를 포함하므로 이미지 용량이 큼 (수 GB)
💡 도커 컨테이너(Docker Container)
- 리눅스의 namespace, cgroup, chroot 등을 사용해 프로세스 단위 격리
- 커널 공유로 성능 손실 최소화
- 컨테이너에는 필요한 라이브러리와 실행파일만 포함, 이미지 용량이 작음
- 이미지 배포가 빠르고 효율적이며, 가상화에 따른 성능 손실 거의 없음
비유:
- 가상머신 = 무겁지만 완전한 운영체제
- 컨테이너 = 가볍고 빠른 애플리케이션 실행 환경
⚙️ 도커 구성요소
구성 요소 | 설명 |
Docker Client | 사용자가 도커 명령어를 입력하는 클라이언트 (build, pull, run 등) |
Docker Host | 도커가 설치되어 있는 서버, 컨테이너와 이미지를 실행/관리 |
Docker Daemon | 도커 엔진으로, 실제 컨테이너를 생성하고 실행하는 역할 |
Registry | 이미지 저장소 (Public: Docker Hub, Private: AWS ECR 등) |
🧱 도커 이미지 vs 도커 컨테이너
🧩 도커 이미지
- 컨테이너 생성을 위한 읽기 전용 템플릿
- 가상 머신의 iso 파일과 유사
- 다중 계층 구조의 바이너리 파일
- 기본 형태:
[저장소]/[이미지 이름]:[태그]
- 저장소: 이미지 위치 (없으면 Docker Hub로 간주)
- 이미지 이름: 역할 설명
- 태그: 버전 정보 (없으면 latest)
🚀 도커 컨테이너
- 도커 이미지를 run 명령어로 실행해 생성
- 컨테이너는 독립된 파일 시스템과 자원을 가진 격리 환경
- 동일 이미지로 여러 컨테이너 생성 가능 (1:N 관계)
- 이미지 ↔ 컨테이너 관계 비유:
- 프로그램 ↔ 프로세스
- 클래스 ↔ 인스턴스
컨테이너는 원본 이미지에 영향을 주지 않고, 변경 사항은 컨테이너 계층에만 저장됩니다.
즉, A 컨테이너에서 변경해도 B 컨테이너나 이미지에는 영향 없음.
728x90
반응형
'Docker' 카테고리의 다른 글
[Docker] Docker Compose 개념 정리 및 사용법 (0) | 2025.03.17 |
---|