Node.js 애플리케이션을 Docker화하는 방법

Node Js Aepeullikeisyeon Eul Dockerhwahaneun Bangbeob



애플리케이션을 Docker화하려면 애플리케이션을 실행하는 데 필요한 모든 필수 구성 요소를 지정한 다음 Dockerfile을 활용하여 다양한 시스템과 공유할 수 있는 특수 Docker 이미지를 구축하는 것이 포함됩니다. “를 도커화 Node.js ” 응용 프로그램은 일관성을 향상시키고 개발자 측에서 편리한 디버깅을 보장합니다.

전제 조건







'를 도킹화하기 위한 전제 조건 Node.js ” 응용 프로그램에는 다음이 포함됩니다.



  • 도커 설치.
  • Node.js 애플리케이션의 기본 이해.

Node.js 애플리케이션을 Dockerize하는 방법은 무엇입니까?

ㅏ ' Node.js ” 애플리케이션은 다음 단계를 통해 고정화될 수 있습니다.



1단계: 'package.json' 파일 생성





먼저 모든 파일이 포함될 새 디렉터리를 만듭니다. 이 디렉토리 내에서 ' 패키지.json ” 종속성과 함께 앱을 나타내는 파일:

{
'이름' : 'docker_web_app' ,
'버전' : '1.0.0' ,
'설명' : 'Docker의 Node.js' ,
'작가' : '첫번째 마지막' ,
'기본' : '서버.js' ,
'스크립트' : {
'시작' : '노드 서버.js'
} ,
'종속성' : {
'표현하다' : '^4.18.2'
} }



2단계: 'package-lock.json' 파일 생성

“package.json” 파일 내에서 “ npm 설치 ” cmdlet. 이렇게 하면 “ 패키지-lock.json ” 파일은 다음과 같이 Docker 이미지에 복사됩니다.

npm 설치하다

3단계: 서버 생성

그 후 “ server.js ”를 활용하는 웹 앱을 선언하는 파일입니다. Express.js ” 프레임워크:

'엄격하게 사용하다' ;

const 표현 = 필요 ( '표현하다' ) ;

const 포트 = 8080 ;
const 호스트 = '0.0.0.0' ;

const 앱 = 익스프레스 ( ) ;
app.get ( '/' , ( 요청, 입술 ) = > {
재전송 ( '헬로 월드' ) ;
} ) ;

앱.듣기 ( 포트, 호스트, ( ) = > {
콘솔.로그 ( ` http에서 실행 중: // ${HOST} : ${포트} ` ) ;
} ) ;

이제 공식 Docker 이미지를 통해 Docker 컨테이너 내에서 애플리케이션을 실행하는 방법론으로 넘어가겠습니다.

4단계: Dockerfile 만들기

모든 파일로 구성된 동일한 디렉터리 내에 Dockerfile을 수동으로 만듭니다. 이 파일에서 다음 코드 줄을 작성합니다.

노드에서: 18
작업 디렉터리 / 우리 / 소스 /
패키지 복사 * .json . /
npm 실행 설치하다
복사 . .
폭로하다 8080
명령 [ '마디' , '서버.js' ]

위의 코드 조각에서 아래 단계를 적용하세요.

  • 먼저 노드의 최신 장기 지원 버전 18을 포함된 기본 이미지로 활용합니다. 도커 허브 .
  • 그런 다음 이미지에 앱 코드를 포함할 디렉터리를 만듭니다.
  • 이는 애플리케이션의 작업 디렉터리를 나타냅니다.
  • 이제 '를 통해 앱 종속성을 설치하세요. npm '.
  • 메모: npm 버전 4 이하를 사용하는 경우 'package-lock.json' 파일이 생성되지 않습니다.
  • 이제 “ 패키지.json ” 파일. 또한 '를 통해 Docker 이미지 내에 앱의 소스 코드를 번들로 묶습니다. 복사 ' 지침.
  • '를 활용하세요. 폭로하다 ” 앱이 포트 8080에 바인딩되도록 지시합니다.
  • 마지막으로 런타임을 정의하는 CMD를 통해 애플리케이션을 실행하도록 cmdlet을 정의합니다. 여기서는 “ 노드 서버.js ” cmdlet을 사용하여 서버를 시작합니다.

5단계: '.dockerignore' 파일 만들기

'에 '.dockerignore' 파일을 만듭니다. 도커파일 ” 아래 제공된 콘텐츠로 구성된 디렉터리/폴더:

node_modules
npm-debug.log

이 콘텐츠는 로컬 모듈과 디버그 로그가 각각 Docker 이미지에 복사되는 것을 방지합니다.

6단계: 이미지 구축

이제 Dockerfile을 구성하는 디렉터리 내에서 아래에 명시된 cmdlet을 사용하여 이미지를 빌드합니다.

도커 빌드 . -티 nodejs / 노드 웹앱

이 cmdlet에서는 “ nodejs '는 디렉터리 이름을 나타내므로 이에 따라 cmdlet을 지정하고 ' -티 ” 플래그는 이미지에 태그를 지정합니다.

이제 다음 명령을 통해 이미지를 나열하십시오.

도커 이미지

7단계: 이미지 실행

아래에 명시된 cmdlet을 사용하여 이미지를 실행/실행합니다.

도커 실행 -피 49160 : 8080 -디 nodejs / 노드 웹앱

여기서는 “ -피 ' 플래그는 공용 포트를 컨테이너 내의 개인 포트로 리디렉션하고 ' -디 ” 플래그는 분리 모드, 즉 백그라운드에서 컨테이너를 실행합니다.

8단계: 앱의 출력 생성

이제 다음 명령을 사용하여 애플리케이션의 출력을 인쇄합니다.

도커 추신
도커 로그 77b1e3c8576e

컨테이너 셸 내에서 탐색해야 하는 경우 ' 간부 ” cmdlet:

도커 간부 -그것 77b1e3c8576e / 큰 상자 / 세게 때리다

여기, ' 77b1e3c8576e ”는 실행된 “를 통해 복사할 수 있는 컨테이너의 ID를 나타냅니다. 도커 ps ” 이전에 명령을 내렸습니다.

9단계: 애플리케이션 테스트

애플리케이션을 테스트하려면 Docker가 매핑한 앱의 포트를 검색하세요.

도커 추신

위의 cmdlet에서 Docker는 ' 8080 ” 컨테이너 내의 포트를 포트로 “ 49160 ” 기계에.

10단계: 애플리케이션 호출

'를 통해 애플리케이션을 호출합니다. 곱슬 곱슬하다 위에 매핑된 포트를 참조하고 필요한 값을 입력하여 ” cmdlet을 실행합니다.

곱슬 곱슬하다 -나 로컬 호스트: 49160

11단계: 애플리케이션 닫기/종료

마지막으로 '를 통해 애플리케이션을 종료합니다. 죽이다 ” cmdlet:

도커 죽이다 77b1e3c8576e

또한 입력 값을 사용하여 이 명령을 통해 애플리케이션이 중지되었는지 확인합니다.

곱슬 곱슬하다 -나 로컬 호스트: 49160

결론

ㅏ ' Node.js ' 애플리케이션은 서버, dockerfile, '.dockerignore' 파일을 생성하고, 이미지를 빌드 및 실행하고, 앱의 출력을 생성하고, 애플리케이션 중지를 테스트, 종료 및 확인하여 도킹화할 수 있습니다. 이 문서에서는 Node.js 애플리케이션을 Docker화하는 방법을 자세히 설명했습니다.