본문 바로가기
카테고리 없음

🚢 도커(Docker) 완전 기초부터 실전 구축까지!

by anuglyduckling 2025. 3. 27.
728x90
반응형

🐳 도커란 무엇인가요?

개발자라면 한 번쯤은 들어봤을 말,
내 컴퓨터에선 잘 되는데...?

이 문제를 해결해주는 기술이 바로 **도커(Docker)**입니다.
도커는 애플리케이션을 격리된 환경에서 실행할 수 있게 도와주는 컨테이너 기반 가상화 플랫폼입니다.

컨테이너 안에 애플리케이션과 그에 필요한 라이브러리, 설정, 실행 환경 등을 모두 하나로 묶어 실행하기 때문에
다른 컴퓨터, 서버, 클라우드 어디에서든 같은 환경, 같은 결과를 만들어냅니다.


📦 가상머신과 도커의 차이는?

항목가상머신 (VM)도커 (Container)
무게감 무겁다 (OS 포함) 가볍다 (커널 공유)
부팅 속도 느림 빠름
자원 사용 많음 적음
실행 환경 완전한 독립 OS 호스트 OS와 커널 공유

도커는 마치 ‘공용 건물의 방’처럼 운영체제를 공유하면서도 각각의 애플리케이션이 서로 간섭하지 않도록 격리하는 방식이에요. 이게 가볍고 빠르면서도 효과적인 이유죠!

 

🛠️ 도커 설치 방법 (Windows 기준)

  1. 도커 데스크탑(Docker Desktop) 설치
    👉 https://www.docker.com/products/docker-desktop/ 에서 다운로드
  2. WSL2(Windows Subsystem for Linux) 활성화
    도커는 WSL2를 기반으로 실행되므로, 윈도우 설정에서 기능 활성화 필요
    → 제어판 > 프로그램 > Windows 기능 켜기/끄기 > "Linux용 Windows 하위 시스템" 및 "가상 머신 플랫폼" 체크
  3. 재부팅 후 Docker Desktop 실행
  4. 터미널(CMD, PowerShell, 혹은 WSL)에서 다음 명령어로 설치 확인:
docker --version

 

🔧 도커 기본 사용법 (Hello World부터!)

1. 도커 이미지 실행하기

docker run hello-world

도커가 잘 설치되어 있다면, “Hello from Docker!”라는 메시지가 뜰 거예요.

2. 인기 많은 이미지 가져오기

예: Nginx 웹서버 실행

docker run -d -p 8080:80 nginx
  • -d: 백그라운드 실행
  • -p: 포트 매핑 (내 PC의 8080 → 컨테이너의 80번 포트)

→ 브라우저에서 http://localhost:8080 입력하면 Nginx 페이지가 보여요!

 

📄 Dockerfile 만들기 (내 앱을 이미지로 만들기)

# 베이스 이미지
FROM python:3.9

# 작업 디렉토리 설정
WORKDIR /app

# 코드 복사
COPY . .

# 의존성 설치
RUN pip install -r requirements.txt

# 실행 명령어
CMD ["python", "app.py"]

 

위 Dockerfile을 기반으로 내 파이썬 앱을 컨테이너로 만들 수 있어요.

docker build -t my-python-app .
docker run -p 5000:5000 my-python-app

 

🧽 도커 컨테이너 관리 명령어

명령어설명
docker ps 실행 중인 컨테이너 목록
docker ps -a 중지된 것도 포함한 전체 컨테이너
docker stop [컨테이너ID] 컨테이너 정지
docker rm [컨테이너ID] 컨테이너 삭제
docker images 현재 저장된 이미지 목록
docker rmi [이미지ID] 이미지 삭제

 

🌐 도커 허브(Docker Hub)란?

  • 개발자들이 이미 만들어둔 다양한 이미지들이 모여있는 저장소예요.
  • 예: MySQL, MongoDB, Node.js, Redis 등
  • 명령어 예시:
docker pull mysql

 

🎯 마무리하며

도커는 개발자가 더 효율적으로, 더 안정적으로 코드를 개발하고 배포할 수 있도록 도와주는 필수 도구입니다.
처음엔 어렵게 느껴질 수 있지만, 한 번 익숙해지면 배포의 복잡함, 운영환경 차이, 테스트 환경 세팅 등의 문제를 한 방에 해결할 수 있어요.

728x90
반응형