[Docker] Utility Containers

·2024년 2월 12일

유틸리티 컨테이너란?

  • 특정 환경만 포함하는 컨테이너
  • npm init등을 실행할때

구성하기

# 가벼운 버전
FROM node:14-alpine

WORKDIR /app

# CMD와 비슷 하지만 뒤에 앞에 npm이 붙음
ENTRYPOINT ["npm"]

CMD와 ENTRYPOINT

  • CMD의 경우 인자로 넘긴 것을 실행한다. 하지만, 실행시 인자로 명령어를 준다면 그 명령어로 대체됨

Dockerfile

CMD[ "node", "app,js" ]
docker run -it npm init node_util

다음과 같이 실행시 npm init으로 대체되어 실행됨!

  • ENTRYPOINT의 경우에는 인자 앞엥 해당 명령어가 붙어서 실행

Dockerfile

ENTRYPOINT ["npm"]
docker run -it init node_util

그래서 npm init은?

  • 명령어를 실행하고 종료하면 컨테이너 내부에 파일이 생성됨
    -> 바운드 마운트를 이용한다!

실행하기

# 이미지 빌드하고 유틸로 사용하기 / 바인드 마운트 사용
docker build -t node-util .
docker run -it -v node-util -v [/Users:/app] npm init

docker-compose 사용시

version: "3.8"
services:
	npm:
	build: ./
	stdin_open: true
	tty: true
	volumes:
		- ./:/app 

# delegated: 배치로 기본 처리, 안정성이 떨어지지만 성능 향상 / 자주 기록 안하면 적합
	volumes:
		- .src:/var/www/html:delegated
# compose 사용시
docker-compose run --rm npm[name] init

0개의 댓글