도커는 애플리케이션을 컨테이너로 패키징해 효율적으로 배포하고 관리하는 도구입니다.
성능 최적화, 개발 효율성 증대, 환경 일관성 보장 등 다양한 이점을 제공하죠.
아래에서 개발/운영에 반드시 필요한 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)
)
- 레이블로 라우팅 규칙 정의 가능 (e.g.,
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