ノードをdockerizingする.ウェブアプリ

3827 ワード

私たちは皆、たくさんのドッカーを聞きました.このポストでは、既存のノードJSアップリネーションをdockerizeする方法を参照してください.
我々は、我々のNODEJSアプリケーションのためのDocker画像を作成します.Dockerのイメージは、それを実行するために必要な環境とアプリケーションをバンドルされる自己完結型のユニットです.これ以上のライブラリをインストールし、依存関係、パッケージをダウンロードして、設定ファイルを使用してファイルをシミュレートする場合は、お使いのマシンがDockerをサポートする場合は、dockerizedアプリを実行することができます.
このチュートリアルでは、最初に新しい簡単なノードJSアプリケーションを作成します.

単純なノードを作成します。jsアプリ


ユーザーは以下のコマンドを簡単にNodeJSアプリケーションを作成します.
mkdir nodejs_docker
cd nodejs_docker
npm init
名前をnodejsstra Dockerに設定します.他のオプションについては、Enterでデフォルト値を確認してください.
NPMはパッケージを作成します.アプリケーションの依存関係を保持するJSONファイル.最初の依存としてExpressフレームワークを追加しましょう.
npm install express --save
ファイルは次のようになります.
{
  "name": "nodejs_docker",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}
インデックスを作成します.このファイルは、サーバーを実行し、サーバーが実行していることを確認メッセージを与えるでしょう.
//Load express module with `require` directive
var express = require('express')
var app = express()

//Define request response in root URL (/)
app.get('/', function (req, res) {
  res.send('Hello World!')
})

//Launch listening server on port 8081
app.listen(8081, function () {
  console.log('app listening on port 8081!')
})

アプリを実行する


アプリケーションが起動する準備ができました
node index.js
移動するhttp://localhost:8081/ ブラウザで表示します.

Dockerizeノード。JS


一度ノードAppliaTitonは、我々が取ることができる次のステップを実行しているこのアプリケーションをDockerizeすることです.これを行うには、システムにDockerをインストールします.空のファイルをDockerFile 我々のコードベースで.
開けるDockerFile 任意のコードエディターで.今すぐDockerファイルを作成できます.
  • 第1行:私たちは、どのノードのノードが欲しいのか、そして私たちがビルドしたいイメージを記述しなければなりません.
  • FROM node:16
    
  • 2行目の作業ディレクトリを作る/app . これはDockerコンテナ内のフォルダーを作成します.
  • WORKDIR /app
    
  • 行3 - 4 - 5 :アプリケーションを/app ディレクトリとインストール依存関係.あなたが加えるならばpackage.json 最初と実行npm install 後で、あなたが変わるならば、Dockerは依存関係を再びインストールする必要はありませんpackage.json ファイル.
  • COPY package.json /app
    RUN npm ci --only=production && npm cache clean --force
    COPY . /app
    
  • 行6 :この行は、ノードDockerイメージが起動したときに何を実行すべきかを説明します.我々のやりたいことは、アプリケーションを実行することです.
  • CMD node index.js
    
  • すべてのものはコンテナの中でされています、そして、我々がポートを公開するまで、誰もそれにアクセスすることができません.
  • EXPOSE 8081
    
  • 最終Dockerファイル
  • Summing up, the whole Dockerfile should look like this:
    
    FROM node:12-alpine3.14
    WORKDIR /app
    COPY package.json /app
    RUN npm ci --only=production && npm cache clean --force
    COPY . /app
    CMD node index.js
    EXPOSE 8081
    

    ビルドのイメージ


    命令の準備が整ったら、Dockerビルドコマンドを実行し、- tパラメータを指定してイメージの名前を設定し、DockerFileが置かれているディレクトリを選択します.
    docker build -t nodejs_docker .
    

    Dockerコンテナを起動する


    アプリケーションは、イメージに焼きました.ディナータイム!次のコマンドを実行してコンテナを起動し、同じポート8081でホストに発行します.
    docker run -p 8081:8081 nodejs_docker
    

    ありがとう