728x90
반응형

유틸리티 컨테이너에 대해서
유틸리티 컨테이너: 환경만 제공하는 특수 컨테이너
유틸리티 컨테이너란?
유틸리티 컨테이너는 애플리케이션을 포함하지 않고, 특정 환경만 제공하는 컨테이너입니다. 이는 호스트 시스템에 툴을 설치하지 않고도 해당 환경을 활용할 수 있게 해줍니다.
주요 특징:
- 애플리케이션 없이 환경만 포함
- 특정 명령을 실행하기 위한 목적
- 작업 완료 후 일반적으로 종료됨
컨테이너에서 명령 실행 방법
1. docker exec - 실행 중인 컨테이너에 명령 추가
# 기본 형식
docker exec [컨테이너이름] [명령어]
# 대화형 모드 (입력 가능)
docker exec -it [컨테이너이름] [명령어]
# 예시
docker exec -it node-container npm init
특징:
- 기존 실행 중인 컨테이너 필요
- 메인 프로세스 중단 없이 추가 명령 실행
- 로그 확인 등에 유용
2. docker run - 기본 명령 오버라이드
# 기본 형식
docker run [이미지] [새 명령어]
# 예시
docker run -it node npm init
특징:
- Dockerfile의 CMD 명령 대체
- 명령 완료 후 컨테이너 종료
- 일회성 작업에 적합
유틸리티 컨테이너 구축 예시
Dockerfile 작성
FROM node:14-alpine
WORKDIR /app
ENTRYPOINT ["npm"]
빌드 및 실행
# 이미지 빌드
docker build -t node-util .
# 바인드 마운트로 실행
docker run -it -v $(pwd):/app node-util init
ENTRYPOINT 활용
ENTRYPOINT는 CMD와 유사하지만 중요한 차이가 있습니다:
ENTRYPOINT ["npm"] # 기본 명령 고정
특징:
- docker run 시 지정한 명령이 ENTRYPOINT 뒤에 추가됨
- 예: docker run node-util init → npm init 실행
- 실행 가능한 명령 제한 가능
- 안전성 향상
Docker Compose로 유틸리티 컨테이너 사용
version: "3.8"
services:
npm:
build: ./
stdin_open: true
tty: true
volumes:
- ./:/app
실행 방법:
# 단일 서비스 실행 후 명령 실행
docker-compose run npm init
# 실행 후 컨테이너 자동 제거
docker-compose run --rm npm init
유틸리티 컨테이너의 장점
- 환경 격리: 호스트 시스템 오염 방지
- 버전 관리: 프로젝트별 다른 버전 사용 가능
- 일관성: 모든 개발자가 동일한 환경 사용
- 간편한 설정: 복잡한 설치 과정 없이 필요한 환경 제공
유틸리티 컨테이너는 개발 환경 설정, 빌드 도구, 코드 생성 도구 등 다양한 개발 작업에 활용할 수 있는 강력한 도커 활용 패턴입니다.
참고
728x90
반응형
'강의 > Docker & Kubernetes : 실전 가이드' 카테고리의 다른 글
[115-124] Laravel & PHP 프로젝트 도커화: 다중 컨테이너 설정 (0) | 2025.03.31 |
---|---|
[114] Target 설정 (1) | 2025.03.26 |
[98-100] Docker Compose 명령어와 다중 컨테이너 구성 (0) | 2025.03.16 |
[95, 96] Docker Compose 파일 만들기 (0) | 2025.03.15 |
[94] Docker Compose : 무엇이며 왜 사용하는가? (0) | 2025.03.13 |
댓글