초보 개발자를 위한 Docker 기본 개념, 컨테이너와 이미지의 차이부터
KUKJIN LEE • 2일 전 작성
Docker란 무엇인가?
Docker는 애플리케이션을 컨테이너(Container) 라는 가벼운 실행 환경에서 동작하게 만드는 도구입니다. 컨테이너를 사용하면 어디서든 동일한 환경에서 애플리케이션을 실행할 수 있습니다.
컨테이너(Container)와 가상머신(VM)의 차이
컨테이너는 가상 머신(VM) 과 유사하지만, 더 가볍고 빠르게 동작합니다.
항목 |
가상 머신(VM) |
컨테이너(Container) |
---|---|---|
실행 속도 |
느림 (OS 부팅 필요) |
빠름 (애플리케이션만 실행) |
자원 사용량 |
무겁고 많은 리소스 사용 |
가벼움, 적은 리소스 사용 |
독립성 |
각 VM은 별도의 OS 포함 |
여러 컨테이너가 하나의 OS 공유 |
배포 방식 |
무거운 VM 이미지 필요 |
경량 컨테이너 이미지 사용 |
💡 컨테이너는 가상 머신과 다르게 OS 전체를 포함하지 않고 애플리케이션 실행에 필요한 요소만 포함 하기 때문에 빠르고 효율적입니다.
Docker 이미지와 컨테이너의 차이
Docker에서는 반드시 알고 넘어가야하는 두 가지 개념이 있습니다.
🔹 이미지(Image)란?
-
컨테이너를 실행하기 위한 설정과 애플리케이션 코드가 포함된 패키지
-
하나의 스냅샷처럼, 변하지 않는 상태
-
실행 가능한 컨테이너를 만들기 위한 '템플릿'
📌 비유하면?
이미지 = 요리 레시피
컨테이너 = 레시피를 보고 만든 요리
🔹 컨테이너(Container)란?
-
이미지를 실행한 상태 (실제로 작동하는 애플리케이션)
-
여러 개의 컨테이너를 실행할 수 있음 (서로 독립적)
-
필요할 때 생성하고, 사용 후 삭제 가능
Docker를 사용하면 좋은 점
✅ 일관된 개발 환경 제공 → 환경에 따른 충돌 문제 해결!
✅ 빠른 배포 및 실행 → 컨테이너 실행이 매우 빠름
✅ 가벼운 리소스 사용 → 가상 머신보다 효율적
✅ 독립적인 실행 환경 → 여러 개의 애플리케이션을 충돌 없이 실행 가능
✅ 배포 자동화 가능 → CI/CD와 결합하여 운영 효율 향상
Docker 컨테이너 실행해보기
직접 Docker를 사용해봅시다.
# 1. Docker가 설치되어 있는지 확인
docker --version
# 2. 첫 번째 컨테이너 실행
docker run hello-world
명령어를 실행하면, "Hello from Docker!" 메시지가 나오며 Docker가 정상적으로 작동하는 것을 확인할 수 있습니다.