Docker는 컨테이너 기반 가상화 기술을 제공하는 플랫폼으로, 애플리케이션과 그 실행 환경을 컨테이너(Container)라는 독립된 단위로 패키징하여 실행할 수 있게 합니다. 이를 통해 일관된 개발 환경, 배포 자동화, 효율적인 리소스 사용 등이 가능합니다.

🛠️ Docker의 핵심 개념

  1. 이미지(Image)
    • 컨테이너를 실행하기 위한 템플릿 역할을 함
    • 애플리케이션, 라이브러리, 의존성 등을 포함하여 동일한 환경을 유지
    • Dockerfile을 사용하여 직접 제작 가능
  2. 컨테이너(Container)
    • 이미지를 기반으로 실행되는 독립적인 애플리케이션 환경
    • 서로 격리된 상태에서 실행되며, 가볍고 빠름
    • docker run 명령으로 생성하고 실행 가능
  3. Dockerfile
    • Docker 이미지를 자동으로 빌드할 수 있는 스크립트 파일
    • 애플리케이션의 실행 환경을 코드로 정의할 수 있음

🚀 Docker의 특징 및 장점

경량성 → 가상머신(VM)보다 적은 리소스를 사용
빠른 배포 → 컨테이너를 몇 초 만에 실행 가능
일관된 환경 → 개발/테스트/운영 환경 차이를 제거
이식성 → 어떤 OS에서도 동일한 환경으로 실행
확장성 → 여러 개의 컨테이너를 쉽게 관리 가능

📌 Docker 이미지 생성 예제

아래 Dockerfile을 사용하여 간단한 Python 웹 서버 이미지를 만들어보겠습니다.

# 베이스 이미지 선택 (Python 3.9 사용)
FROM python:3.9

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

# 필요한 파일 복사
COPY app.py .

# Flask 설치
RUN pip install flask

# 컨테이너가 실행될 때 실행할 명령어
CMD ["python", "app.py"]

app.py (웹 서버 코드)

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
return "Hello, Docker!"

if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)

🔧 이미지 빌드 및 컨테이너 실행

  1. 이미지 빌드sh복사편집docker build -t my-python-app .
  2. 컨테이너 실행sh복사편집docker run -d -p 5000:5000 my-python-app
  3. 웹 브라우저에서 확인
    http://localhost:5000 접속 → “Hello, Docker!” 메시지 출력

🛠️ Docker 기본 명령어

명령어설명
docker ps실행 중인 컨테이너 목록 조회
docker images로컬에 저장된 이미지 목록 조회
docker pull [이미지]Docker Hub에서 이미지 다운로드
docker build -t [이미지명] .현재 디렉토리의 Dockerfile을 기반으로 이미지 빌드
docker run -d -p 8080:80 [이미지명]컨테이너 실행 (백그라운드 모드)
docker stop [컨테이너ID]컨테이너 중지
docker rm [컨테이너ID]컨테이너 삭제
docker rmi [이미지명]이미지 삭제

🎯 Docker 사용 사례

🔹 개발 환경 통합 → 팀원 간 동일한 개발 환경 유지
🔹 CI/CD 파이프라인 → 배포 자동화 및 운영환경 일관성 유지
🔹 마이크로서비스 아키텍처(MSA) → 여러 개의 독립적인 서비스 관리
🔹 클라우드 환경 최적화 → AWS, GCP, Azure 등의 컨테이너 서비스와 연동

zerg96

Share
Published by
zerg96
Tags: Docker도커

Recent Posts

노트북(윈도우)에서 아이폰 유선 테더링 하기

윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…

3일 ago

오라클 래치(Latch)

오라클 데이터베이스의 성능을 논할 때, 내부적으로 발생하는 경합(Contention)은 피할 수 없는 주제다. 특히 다수의 프로세스가…

7일 ago

사장님도 3표, 나도 3표? ‘3%룰’ 완전 정복!

안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…

3주 ago

Vector Store(벡터 스토어)

'벡터 스토어' 완벽 가이드: AI 시대, 데이터의 새로운 심장을 만나다 IT 업계는 인공지능(AI)이라는 거대한 패러다임의…

3주 ago

Gemini CLI (재미나이 CLI)

1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…

3주 ago

과적합 (overfitting)

과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…

1개월 ago