- Published on
Docker 완벽 가이드: 개념, 설치 방법, VM과 차이점
- Authors
- Name
- devnmin
Docker란? 🐳
Docker는 애플리케이션을 컨테이너화하여 배포 및 실행하는 플랫폼입니다. 가상 머신(VM)과 달리 OS 전체를 가상화하지 않고, 애플리케이션 실행에 필요한 환경만 분리하여 경량화된 실행이 가능합니다.
1. Docker의 핵심 개념 🚀
컨테이너(Container)
- OS 커널을 공유하며 독립적인 실행 환경을 제공
- 가벼운 프로세스로 실행되어 빠르고 효율적
- 애플리케이션과 그 의존성을 함께 패키징
이미지(Image)
- 컨테이너를 실행하기 위한 템플릿
- 불변(immutable)하며 여러 개의 컨테이너에서 재사용 가능
Dockerfile
- 컨테이너 이미지를 빌드하기 위한 설정 파일
- 명령어 기반으로 이미지의 환경을 정의
Docker Hub
- 공식 및 사용자 정의 컨테이너 이미지를 공유하는 레지스트리
docker pull
명령어로 쉽게 이미지 다운로드 가능
2. Docker 설치하기 🛠️
2.1 Linux(Ubuntu)에서 Docker 설치
# 기존 패키지 제거
sudo apt remove docker docker-engine docker.io containerd runc
# 패키지 업데이트 및 필수 패키지 설치
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# Docker 공식 GPG 키 추가
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Docker 저장소 추가
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker 패키지 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Docker 실행 확인
sudo systemctl enable --now docker
docker --version
2.2 Windows에서 Docker 설치
- Docker 공식 웹사이트에서
Docker Desktop for Windows
다운로드 - 설치 파일 실행 후 Docker 설치 진행
Docker Desktop
실행 후WSL2 활성화
설정- PowerShell에서
docker --version
명령어로 확인
2.3 macOS에서 Docker 설치
- Docker 공식 웹사이트에서
Docker Desktop for Mac
다운로드 .dmg
파일을 실행 후 설치 진행docker --version
명령어로 확인
설치 후 테스트
docker run hello-world
3. Docker와 VM의 차이점 ⚖️
항목 | Docker (컨테이너) | VM (가상 머신) |
---|---|---|
실행 속도 | 매우 빠름 | 상대적으로 느림 |
리소스 사용 | 가볍고 효율적 | 무겁고 많은 자원 필요 |
OS 의존성 | 호스트 OS 커널 공유 | 게스트 OS가 필요 |
격리 수준 | 프로세스 단위 | 전체 OS 단위 |
사용 사례 | 마이크로서비스, CI/CD | 다양한 OS 실행, 완전한 격리 |
Docker는 경량화된 애플리케이션 실행을 목표로 하는 반면, VM은 완전한 OS 환경 제공이 필요할 때 적합합니다.
4. Docker를 활용한 기본 컨테이너 실행 예제 📌
# nginx 컨테이너 실행
docker run -d -p 8080:80 nginx
-d
: 백그라운드 실행-p 8080:80
: 호스트의 8080 포트를 컨테이너의 80포트에 매핑
웹 브라우저에서 http://localhost:8080
에 접속하여 Nginx 실행 확인 가능.
결론 🎯
Docker는 빠르고 경량화된 애플리케이션 배포를 가능하게 하며, 가상 머신(VM)보다 가볍고 효율적입니다. 하지만, 완전한 OS 격리가 필요한 경우 VM이 적합할 수도 있습니다. 프로젝트의 요구사항에 따라 적절한 기술을 선택하세요!
유용한 자료 📚
더 자세한 Docker 활용법은 Docker 초급 가이드를 참고하세요! 🚀