상세 컨텐츠

본문 제목

노드js앱을 컨테이너기반 도커용 앱으로 실행하기

노드js·자바스크립트

by 김일국 2024. 1. 2. 14:46

본문

이번 시간은 바로 전 포스트에서 작업한 노드js보드 앱을 도커 형식의 이미지로 만들어 컨테이너에서 실행되는 앱으로 변환해 본다.

-------------------------------------------------------------------------------------------------------------------------------

1. 먼저 기존 노드js보드를 작업한 PC(노드js16.14.0)에 윈도우용 도커 데스크탑을 설치한다. 설치 과정의 핵심은 아래와 같다.

1. 도커 데스크탑 원도우 버전을 다운로드 한다.(위)
2. WSL을 선택한다. WSL은 쮠도우 서브시스템 for 리눅스 약자이다(위)
3.설치 후 재 부팅하고 윈도우 기능을 보면 WSL즉 리눅스용 윈도우하위시스템이 자동으로설치된 것을 확인 할 수 있다(위)
4. 설치 후 도커데스크탑을 실행하면, 최초 사용권 동의에 관련된 화면이 나온다. Accept 버튼 선택(위)
5. 최초 셋팅화면에서는 위 기본값을 선택한다.(위)
6. 일단 로그인 없이 내PC에 도커이미지를 생성해 사용가능하다. 단, 온라인 도커허브에 이미지를 업로드 하려면 회원가입이 필요(위)
7. 사용목적은 Skip 한다. 설치 끝(위)

-------------------------------------------------------------------------------------------------------------------------------

2. 위 에서 설치 및 기본 실행 후 상단의 톱니바퀴 아이콘으로 Settings 화면으로 진입한다.

 - General 의 실행 시 Docker Dashboard 오픈을 체크 해제하고(실행속도때문), WSL2 based engine 부분이 제대로 체크 되어 있는지 확인 한다.(아래)

-------------------------------------------------------------------------------------------------------------------------------

3. 이제 기존노드js보드 프로젝트소스를 포함하는 도커 이미지를 만들고, 컨테이너로 실행해 본다.

 - 말은 거창하지만, 실제로 Dockerfile만 만들면 도커 이미지를 만들고, 컨테이너로 실행할 수 있다.(아래는 도커 파일)

FROM node:16.14.0
WORKDIR /nodejsboard
#COPY package*.json . # node_moducles폴더까지 소스를 모두 복사하기 때문에 필요없다.
#RUN npm install # 위 내용 때문에 굳이 npm install 할 필요가 없다.
COPY . .
EXPOSE 3000 # 기존 노드js앱은 80 포트로 작동하나, 도커 이미지를 컨테이너에서 작동 시킬 때 포트를 3000으로 변경했다.
CMD ["npm", "run", "start"] # 노드 js 앱 실행 명령은 똑같다.

 - 도커 이미지를 만든는 빌드 명령어 : docker build . -t nodejsboard (아래 docker images 로 기존 도커 이미지가 있는지 확인 후 빌드실행)

 - nodejsboard 도커 이미지 생성 후(이미지 크기가 1G정도된다) 확인 및 도커 컨테이너 실행 : docker run -d -p 3000:80 nodejsboard (아래)

- 위에서 사용한 도커 명령어는 아래 사이트에 잘 설명 되어 있다. 이제 부터 우리는 도커데스크탑을 이용해 위에서 작업한 내용을 좀더 자세히 알아 보도혹 한다.(컨테이너 실행, 정지, 삭제 모두 CMD명령어 대신 GUI화면에서 사용가능하다.)

https://medium.com/@su_bak/docker%EC%97%90%EC%84%9C-node-js-%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0-fff786c3d5f4

-------------------------------------------------------------------------------------------------------------------------------

4. 도커 데스크탑을 사용해 위에서 생성한(실행한) 컨테이너 확인 하기

- Containers 메뉴에 실행된 컨테이너 이름과 ID 및 포트가 보인다.(아래)

- 위에서 포트 옆의 링크 아이콘을 클릭하면, 웹브라우저에서 컨테이너로 실행한 3000번 포트의 노드js보드 앱을 확인 할 수 있다.(아래)

- 위에서 도커데스크탑에서 실행 중인 컨테이너를 클릭하고, Files를 보면, 폴더 구조를 확인할 수 있다.(아래 nodejsboard 가 있는지 확인)

 

Ps. 위에선 [노드js앱을 컨테이너기반 도커용 앱으로 실행하기] 라는 주제로 앱 소스를 도커 이미지로 만들어 도커 컨데이너에서 실행해 보았고(Dockerfile 파일사용 + docker build + docker run 명령사용),

앞으로 [노드js앱을 컨테이너 배포 플랫폼인 쿠버네티스에 배포하고 실행하기] 라는 주제로 도커데스크탑에 내장된 kubernetes 메뉴를 이용하여 위에서 만든 도커 이미지를 쿠버네티스로 배포하고 실행하도록 만들어 본다.(deployments.yaml 파일사용 + kubectl apply 명령사용)

관련글 더보기

댓글 영역