화. 7월 22nd, 2025

도커는 애플리케이션을 컨테이너로 패키징해 효율적으로 배포하고 관리하는 도구입니다.
성능 최적화, 개발 효율성 증대, 환경 일관성 보장 등 다양한 이점을 제공하죠.
아래에서 개발/운영에 반드시 필요한 10가지 도커 컨테이너를 상세히 소개합니다!


1. Nginx 🌐

웹 서버 & 리버스 프록시
가벼우면서 고성능인 오픈소스 서버입니다. 정적 콘텐츠 호스팅, 로드 밸런싱에 최적화되어 있습니다.

  • 사용 사례: React/Angular 앱 호스팅, API 게이트웨이
  • 실행 예시:
    docker run -d -p 80:80 --name my-nginx nginx:latest
    • -p 80:80: 호스트의 80번 포트와 컨테이너 연결
    • 기본 설정 파일 경로: /etc/nginx/nginx.conf

2. Redis 🗃️

인메모리 키-값 저장소
초고속 데이터 캐싱, 세션 관리, 메시지 브로커로 활용됩니다.

  • 주요 기능: Pub/Sub 메시징, TTL(자동 만료) 지원
  • 실행 예시:
    docker run -d -p 6379:6379 --name redis-cache redis:alpine
    • redis-cli로 접속: docker exec -it redis-cache redis-cli

3. MySQL 🐬

관계형 데이터베이스
오픈소스 RDBMS로 구조화된 데이터 저장에 적합합니다.

  • 초기 설정:
    docker run -d --name mysql-db \
    -e MYSQL_ROOT_PASSWORD=my-secret-pw \
    -e MYSQL_DATABASE=myapp \
    -p 3306:3306 \
    mysql:8.0
    • -e: 환경 변수로 비밀번호/DB 이름 설정
    • 볼륨 마운트: -v /host/path:/var/lib/mysql로 데이터 유지

4. MongoDB 🍃

NoSQL 문서 데이터베이스
유연한 JSON 형식 문서 저장에 특화되었습니다.

  • 실행 예시:
    docker run -d --name mongo-container \
    -p 27017:27017 \
    -v mongo_data:/data/db \
    mongo:6.0
    • mongosh 접속: docker exec -it mongo-container mongosh

5. PostgreSQL 🐘

고급 오픈소스 RDBMS
복잡한 쿼리, 트랜잭션, GIS 데이터 지원이 강점입니다.

  • 커맨드:
    docker run -d --name postgres-db \
    -e POSTGRES_PASSWORD=mysecretpassword \
    -p 5432:5432 \
    postgres:15
    • 확장 기능 설치: apt-get install postgresql-15-postgis

6. Jenkins 🤖

CI/CD 자동화 서버
빌드, 테스트, 배포 파이프라인을 자동화합니다.

  • 실행 예시 (Docker-in-Docker):
    docker run -d --name jenkins \
    -p 8080:8080 -p 50000:50000 \
    -v /var/jenkins_home:/var/jenkins_home \
    -v /var/run/docker.sock:/var/run/docker.sock \
    jenkins/jenkins:lts
    • 초기 비밀번호 확인: docker logs jenkins

7. Portainer 🖥️

도커 관리 GUI
컨테이너, 이미지, 네트워크를 시각적으로 관리합니다.

  • 설치:
    docker run -d --name portainer \
    -p 9000:9000 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    portainer/portainer-ce:latest
    • 접속: http://localhost:9000 → 초기 어드민 계정 생성

8. Elasticsearch 🔍

분산형 검색/분석 엔진
대규모 로그/데이터 실시간 분석에 사용됩니다.

  • Kibana와 연동:

    # Elasticsearch 실행
    docker run -d --name elasticsearch -p 9200:9200 elasticsearch:8.5.0
    
    # Kibana 실행
    docker run -d --name kibana -p 5601:5601 kibana:8.5.0
    • 데이터 확인: curl http://localhost:9200

9. Traefik 🚦

모던 리버스 프록시
동적 서비스 디스커버리와 Let’s Encrypt 자동 인증서 갱신 지원.

  • 실행 예시:
    docker run -d --name traefik \
    -p 80:80 -p 443:443 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    traefik:v2.8
    • 레이블로 라우팅 규칙 정의 가능 (e.g., traefik.http.routers.myapp.rule=Host(example.com))

10. Node.js 🟢

자바스크립트 런타임
서버사이드 앱 개발용 컨테이너 기반 환경.

  • 앱 실행 예시:
    docker run -it --rm \
    -p 3000:3000 \
    -v $(pwd):/app \
    node:18-alpine \
    sh -c "cd /app && npm install && npm start"
    • -v $(pwd):/app: 호스트-컨테이너 코드 실시간 동기화

🎯 마무리

이 컨테이너들을 활용하면 개발→테스트→운영 환경을 일관되게 유지하며,
리소스 효율성배포 속도를 극대화할 수 있습니다.
> 💡 초보자 팁:
> – docker-compose.yml로 다중 컨테이너 관리
> – Docker Hub에서 공식 이미지 사용 (OFFICIAL 태그 확인)
> – 데이터 보존을 위해 반드시 볼륨 마운트 적용

도커 생태계는 더욱 확장되고 있습니다.
오늘 소개한 컨테이너로 시작해 나만의 최적화 스택을 구축해보세요! 🚀 D

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다