1. Docker의 정의

- 어플리케이션을 컨테이너(container)라는 독립적 환경에서 실행할 수 있도록 하는 오슨소스 플랫폼

2. Docker의 핵심 개념

1) 이미지(Image)

- 어플리케이션을 실행하는데 필요한 모든 것을 포함하고 있는 읽기 전용 템플릿

- 운영체제, 코드, 라이브러리, 종속성 등 모든 설정 포함

- 이미지를 이용해 컨테이너 생성

 

2) 컨테이너(Container)

- 이미지를 기반으로 생성된 실제 실행 가능한 어플리케이션 단위

- 운영체제(OS)와 상관없이 어플리케이션, 라이브러리, 의존성 등 모두 포함하고 있어 어떤 환경에서도 동일하게 작동

- 격리된 공간에서 동작 / 호스트 운영체제와 다른 컨테이너에 영향을 주지 않음

- 하나의 이미지로 여러 컨테이너 생성 가능

 

3) Dockerfile

- 이미지를 만들기 위한 명령어를 담고 있는 스크립트 파일

- 이 파일을 통해 어떤 운영체제를 기반으로 어떤 어플리케이션 설치 및 실행할 지에 대해 정의

3. Docker의 장점

- 일관된 환경: 개발, 테스트, 운영 환경이 모두 동일한 컨테이너로 구성

- 빠른 배포: VM에 비해 가볍고 빠른 시작 가능 → 어플리케이션 배포와 확장의 신속성

- 효율적인 자원 활용: 여러 컨테이너가 하나의 호스트 OS 공유하기 때문에 VM보다 메모리나 CPU 효율적인 관리 가능

- 쉬운 버전 관리: 이미지를 통한 어플리케이션 버전 관리 가능

4. Docker vs VM

특징 Docker 컨테이너 가상머신(VM)
운영체제 호스트 OS 공유 각 VM 마다 독립적 OS 소유
성능 호스트 OS 위에 바로 실행
- 가볍고 빠름
각각의 OS 소유
- 느리고 무거움
자원 적은 자원 사용 많은 자원 사용
구조 컨테이너
-------------------
Docker 엔진
-------------------
OS
여러 VM
-------------------
하이퍼바이저
-------------------
OS

 

728x90

+ Recent posts