개념
- 컨테이너를 생성하고 관리하기 위한 도구
- 소프트웨어 개발에서의 컨테이너란?
- 표준화된 소프트웨어 유닛
- 코드 패키지
- 해당 코드를 실행하는데 필요한 종속성과 도구가 포함
- standalone으로 작동
- 소프트웨어 개발에서의 컨테이너란?
VM(Virtual Machines)
- 하나의 물리적인 컴퓨터 안에서 또 다른 ‘가상의 컴퓨터’를 소프트웨어로 만들어 실행하는 기술
- 이 안에는 Virtual OS(가상 운영 체제)가 존재
장점
- 분리된 환경 생성
- 그 안에 환경별 구성을 가질 수 있음
- 모든 것을 안정적으로 공유, 재생산 가능
단점
- 중복으로 인해 낭비되는 공간 발생
- 성능 저하
- 재생산 및 공유가 가능하지만, 원하는 모든 시스템에 그 VM을 설정하고, 동일한 방식으로 구성해야 함. 즉, 공유할 수 있는 단일 구성 파일이 없음
⇒ 컨테이너가 VM보다 더 나은 방식으로 문제를 해결 할 수 있게 도커가 도와줌
컨테이너
- 운영 체제가 기본적으로 내재하고 있거나 컨테이너 Emulate를 지원하는 내장 컨테이너를 활용
- 도커는 이것이 작동하도록 처리해줌.
- Emulate
- 원래 존재하는 다른 하드웨어나 시스템을 흉내 내서 그대로 재현하는 것
- Emulate
- 그 후, 위에 도커 엔진이라는 도구를 실행하고 이를 기반으로 컨테이너를 실행
장점
- 구성 파일을 사용하여 컨테이너를 구성하고, 설명할 수 있음
- 이를 공유하여 다른 사람이 컨테이너를 다시 만들 수 있게 가능
- 이미지에 빌드한 후 공유하여, 모든 사람이 자신의 시스템에서 동일한 컨테이너를 시작할 수 있게 할 수 있음
비교
- 컨테이너
- 운영 체제와 시스템에 미치는 영향이 적음, 매우 빠름, 최소한의 디스크 사용
- 이미지와 구성 파일로 공유, 재구축 및 배포가 쉽게 가능
- 앱 구축에 있어 필요한 환경만 캡슐화
- VM
- 속도 느림, 디스크 공간 매우 많이 차지
- 공유, 재구축, 배포 모두 수행 가능하지만 까다로움
- 환경 또한 캡슐화, 하지만 필수적이지 않은 것까지 포함
'Study > Docker&Kubernetes' 카테고리의 다른 글
| [Docker] .dockerignore&.env&ARG 작업 (0) | 2026.03.03 |
|---|---|
| [Docker] Volume (0) | 2026.03.03 |
| [Docker] Docker Hub (0) | 2026.02.20 |
| [Docker] 이미지와 컨테이너 (0) | 2026.02.12 |
| [Docker] Dockerfile 작성 및 명령어 (1) | 2026.02.12 |