Docker를 사용하여 Express API 배포

Docker는 클라우드에서 애플리케이션을 실행하기 위해 OS 수준 가상화를 제공하는 크로스 플랫폼 가상화 기술입니다. 이를 통해 개발자는 앱을 컨테이너로 배송하고 시스템 충돌을 피할 수 있습니다.



Docker 컨테이너는 DockerHub를 통해 게시하거나 zip 파일을 사용하여 로컬로 배포할 수 있습니다. 이 기사를 작성하는 시점에서 DockerHub는 100만 개 이상의 공용 도커 컨테이너 및 이미지를 호스팅합니다.

Express API 설정



Express API는 매우 간단하며 hello 메시지를 표시하는 하나의 GET 경로만 포함합니다.

이것이 내 index.js 파일의 모습입니다.



이제 Dockerfile이라는 새 파일을 만들고 그 안에 아래 코드를 붙여넣습니다.

FROM node:16

# Create app directory
WORKDIR /usr/src/app

# Copy package.json
COPY package*.json ./

# Install dependencies
RUN yarn install

# Copy all files
COPY . .

# Expose port 3000
EXPOSE 3000

# Run app
CMD [ "node", "index.js" ]


위 파일 내용의 분해.
  • FROM Node:16은 DockerHub에서 Node v16 이미지를 가져옵니다
  • .
  • WORKDIR/usr/src/app — 앱이 컨테이너 내부에 있는 위치입니다
  • .
  • COPY package*.json ./- 로컬 디렉터리에서 도커 이미지로 package.json을 복사합니다.
  • RUN yarn install — 이것은 모든 종속 항목을 설치합니다.
  • 사본 . . — 그러면 모든 프로젝트 파일이 Docker 이미지에 복사됩니다.
  • EXPOSE 3000 - 포트 3000을 사용하도록 도커 컨테이너를 할당합니다
  • .
  • CMD [ "node", "index.js"] — Node JS 앱이 시작됩니다.

  • Dockerignore 파일:



    이제 .dockerignore 파일을 만들고 그 안에 아래 콘텐츠를 추가합니다.

    node_modules
    yarn*.log
    

    .gitignore와 유사하게 도커 이미지를 빌드할 때 아래 언급된 파일을 무시합니다.

    Docker 이미지 빌드:



    위 과정이 끝나면 프로젝트를 도커 이미지로 빌드해야 사용할 수 있습니다.

    Docker 이미지는 한 줄의 명령을 사용하여 빌드할 수 있습니다.

    docker build . -t="timeless-hello-world"
    


    Docker 이미지 실행:




    docker run -d -p 3000:3000 --name my-app timeless-hello-world
    


    위 명령의 분석:


  • -d는 성공적으로 실행된 후 터미널을 분리합니다. 그렇지 않으면 터미널을 닫으면 서버가 중지됩니다.
  • -p 3000:3000은 응용 프로그램을 실행하려는 포트입니다.
  • --name my-app은 컨테이너의 이름입니다.
  • 마지막으로 timeless-hello-world는 위 단계에서 빌드한 도커 이미지입니다.
  • 엔터 키를 누르면 됩니다. 컨테이너 ID를 묻는 메시지가 표시됩니다.

  • docker ps 명령을 사용하여 컨테이너가 실행 중인지 확인할 수도 있습니다.

    브라우저에서 http://localhost:3000을 열면 다음과 같은 API 응답을 받게 됩니다.



    이것이 이 기사의 전부입니다. 이것이 도커를 사용하여 Express API를 배포하는 데 도움이 되기를 바랍니다.

    의견을 자유롭게 말씀해 주시고 어려움에 직면하면 알려주세요.

    좋은 웹페이지 즐겨찾기