Section7 : 모듈 소개 & "유틸리티 컨테이너"란 무엇인가?

tein·2022년 7월 31일
0

도커 & 쿠버네티스

목록 보기
9/14
  • 유틸리티 컨테이너

    • 공식적인 용어 x
    • 특정 환경만 포함하는 컨테이너
    • 시스템에 노드를 설치 하지 않고도 애플리케이션을 만들 수 있음
    • 하지만 노드 앱에 대한 일부 구성이 포함된 package.json파일이 필요함(번거로울 수 있음)
  • 유틸리티 컨테이너 구축

    • 자체 이미지 필요

    • Dockerfile 추가

      FROM node:14-alpine
      
      WORKDIR /app
      
      # CMD npm init
    • $] docker run -it [파일경로] node-util

    • 패키지 이름 입력, 나머진 디폴트 사용

    • 완료되면 package.json 파일이 호스트머신에 생성됨

  • ENTRYPOINT 활용

    • 실행할 수 있는 명령을 제한할 수 있음
    • CMD 명령과 유사함
      • docker run에서 이미지 이름 뒤에 명령을 추가하면 CMD의 명령이 실행됨.
      • docker run의 이미지 이름 뒤의 명령이 ENTRYPOINT의 명령으로 덮어쓰여짐
    • ENTRYPOINT는 docker run의 이미지 이름 뒤의 명령에 추가됨.
    • 바인드마운트, 볼륨 추가, -it 사용 등... 명령 프롬포트에서 입력해야할 명령어가 많음..
  • Docker Compose 활용

    version: "3.8"
    services:
      npm:
        build: ./
        stdin_open: true
        tty: true
        volumes:
          - ./:/app
    • $] docker compose run npm init
    • run : 여러 서비스가 있는 경우 서비스 이름으로 단일 서비스를 대상으로 지정할 수 있음
      • run에는 up과 down이 없음. 대신 컨테이너가 시작되어 작업 수행 후 명령이 완료되면 종료됨
      • run 명령으로는 컨테이너가 자동으로 제거되지 않음
      • --rm 추가해야 컨테이너 종료 후 자동으로 제거됨
    • init : ENTRYPOINT 다음에 추가되어야 할 명령을 입력한 것
profile
내 시행착오 모음집

0개의 댓글