쿠버네티스의 기초 기술이 되는 도커 컨테이너에 대해 다뤄보겠습니다.
Docker란
도커는 소프트웨어 개발과 배포를 단순화하는 도구입니다.
- 정의: 가상실행 환경을 제공해주는 오픈소스 플랫폼
- 용도: 애플리케이션을 개발, 배포, 실행하는 과정을 단순화
Docker는 레고 블록과 같습니다.혹은 블록 하나만으로도 충분할 때도 많습니다.
각 블록(컨테이너)은 독립적이지만, 쉽게 조합하여 더 큰 구조(애플리케이션)를 만들 수도 있습니다.
좀 더 풀어서 설명하면 애플리케이션을 “컨테이너”라는 표준화된 단위로 패키징하고 실행할 수 있게 해주는 플랫폼입니다.
도커의 장점은 다음과 같습니다.
일관성
- "내 컴퓨터에서는 작동했는데..." 문제를 해결 할 수 있습니다.
- 개발, 테스트, 운영 환경의 차이를 최소화 할 수 있습니다.
이식성
- 어떤 환경에서도 동일하게 실행 가능합니다.
- 클라우드, 개인 PC, 서버 등 어디서든 도커 엔진만 있다면 동작합니다.
효율성
- 자원을 효율적으로 사용할 수 있습니다. (컨테이너 별로 CPU 갯수, 램 사이즈 등 설정도 가능합니다.)
- 빠른 시작과 종료가 가능합니다.
확장성
- 필요에 따라 쉽게 애플리케이션 확장 가능합니다.
- 마이크로서비스 아키텍처를 아주 잘 지원합니다.
컨테이너와 가상머신
도커는 프로세스 실행 환경을 가상화 한다.
기존 가상 환경 기술과 어떤 차이가 있을까?
컨테이너와 가상머신은 리소스를 가상화, 고립화 시키는 측면은 동일하지만 동작 방식의 차이가 있습니다.
가상머신은 서버에 하이퍼바이저를 설치하고, 그 위에 OS. APP을 패키징한 VM을 만들어 실행하는 하드웨어 레벨의 가상화를 지원합니다.
반면, 컨테이너는 운영체제를 제외한 나머지 애플리케이션 실행에 필요한 모든 파일을 패키징 한다는 점에서 OS레벨 가상화를 지원합니다.
하이퍼바이저(Hypervisor) - 가상머신 관리를 위해 하드웨어 제어하는 친구. 하드웨어 물리적 리소스를 VM에 제공하고 하드웨어간 I/O명령을 처리하며 VM 동작 가능 환경을 제공함.

컨테이너는 게스트 OS, 하이퍼바이저가 없어 오버헤드가 줄고 더 가볍게 프로세스를 실행 할 수 있고 복제, 배포가 용이합니다.
비유로 설명하면 CD 플레이어와 같다고 설명할 수 있습니다.
CD플레이어(도커 데몬)만 있다면 어떤 CD(도커 이미지)든 실행(도커 프로세스)할 수 있습니다.
간단히 용어 정리하고 넘어가겠습니다.
- 컨테이너(Container)
- 컨테이너는 애플리케이션과 그 실행에 필요한 모든 것을 포함한 패키지입니다.
- 소프트웨어가 실행되는 독립적인 환경을 말합니다.
- 이미지(Image)
- 컨테이너를 생성하는 데 사용되는 불변의 템플릿입니다.
- 이미지에는 애플리케이션과 필요한 라이브러리, 설정 파일 등이 포함됩니다.
- 도커파일(Dockerfile)
- 이미지를 생성하기 위한 설정 파일. 일련의 명령어들이 포함되어 있으며, 이를 통해 이미지를 만들 수 있습니다.
- Dockerfile 이라는 문서는 약속 된 파일명입니다. 이 이름으로 파일명을 만들면 도커 실행 시 자동으로 이 파일을 읽습니다.
- 레지스트리(Registry)
- 도커 이미지를 저장하고 배포하는 저장소. 어원은 라틴어 '레지스트럼'에서 유래하며, '기록하다'는 의미를 담고 있습니다.
'개발 > DevOps' 카테고리의 다른 글
| [Kubernetes] 쿠버네티스란? (0) | 2025.09.09 |
|---|---|
| [Kubernetes] Docker 기초 2 - 기본 명령 (0) | 2025.09.08 |
| [DevOps] Raspberry로 서버 구축하기 (0) | 2025.07.05 |
| [DevOps] 5MB 파일 테스트 시 에러율 급증 - 트러블슈팅 기록 (0) | 2025.06.03 |