
1. Docker란 무엇인가?
Docker는 애플리케이션을 컨테이너라는 단위로 패키징하고, 배포하고, 실행하는 플랫폼입니다.
기존의 가상 머신(VM) 방식과는 다르게, 운영체제 전체를 가상화하지 않고
필요한 실행 환경만 격리하여 훨씬 가볍고 빠르게 실행할 수 있는 기술입니다.
2. 컨테이너(Container)란?
컨테이너는 애플리케이션 실행에 필요한 모든 것을 하나로 묶은 독립 실행 환경입니다.
이 안에는 다음과 같은 요소들이 포함됩니다:
- 애플리케이션 코드
- 라이브러리 및 종속 패키지
- 설정 파일
- 런타임 환경
즉, 컨테이너 하나만 있으면 어느 컴퓨터에서든 동일하게 실행할 수 있게 되는 것이죠.
💡 예시:
- Python 애플리케이션을 실행하려면 보통 Python이 설치되어 있어야 하고,
버전도 맞춰야 하고, 필요한 패키지도 설치해야 합니다. - 하지만 Docker 컨테이너 안에 모든 것을 다 포함시켜놓으면
어디서든 같은 환경에서 실행할 수 있습니다. (Python 설치 여부 무관)
3. VM과 컨테이너의 차이
| 항목 | 가상 머신 (VM) | 컨테이너 |
|---|---|---|
| 실행 단위 | 전체 OS 포함 | 애플리케이션 및 종속성만 포함 |
| 크기 | 수 GB 이상 | 수 MB ~ 수백 MB |
| 부팅 속도 | 수십 초 ~ 수분 | 수 초 내외 |
| 자원 소비 | 높음 (중복된 OS) | 적음 (호스트 커널 공유) |
| 격리 수준 | 강력함 (전체 가상화) | 가벼운 격리 (OS 커널 공유) |
4. Docker를 사용하는 이유
- 환경 일치: 개발, 테스트, 배포 환경을 동일하게 유지 가능
- 이식성: OS에 상관없이 어디서든 실행 가능 (Windows, Linux, macOS 등)
- 확장성: 여러 컨테이너를 오케스트레이션 도구(Kubernetes 등)로 관리 가능
- 경량화: VM보다 훨씬 가볍고 빠르게 실행 가능
- 자동화: CI/CD 파이프라인과 연동하여 자동 테스트 및 배포 가능
'화상채팅 프로젝트 > Docker' 카테고리의 다른 글
| [Docker] 적응기 - nginx에 간단 html 올려보기 (0) | 2025.07.11 |
|---|---|
| [Docker] 적응기 - nginx 웹서버 띄워보기 (0) | 2025.07.09 |
| [Docker] 기본 명령어 정리 (0) | 2025.07.09 |
| [Docker] Docker 개념 정리 (0) | 2025.06.25 |
| [Docker] Docker 다운로드 / Docker 설치 방법 (0) | 2025.06.24 |