教你使用Docker容器化Node.js應用程式

大雄45發表於2020-09-17
導讀 容器化應用程式在當今世界越來越流行,因為它們能夠解決幾乎每個專案團隊都面臨的一些主要問題。

在本文中,我將告訴你如何使用Docker容器化你的node.js應用程式。在繼續之前,請確保你的計算機中已安裝Docker。

Docker:

教你使用Docker容器化Node.js應用程式教你使用Docker容器化Node.js應用程式

完成安裝過程後,開啟Docker Desktop(保持此後臺執行)和執行 docker version,驗證安裝是否完成。

在本教程中,我使用的是具有較少依賴關係的基本node.js應用程式,但在你的專案中,你可能有一個高階的node.js應用,其依賴性比我的更多。

首先,讓我們看一下我們的 app.js 檔案。

const express = require('express'); 
const app = express();app.listen(3000, () => { 
    console.log('listening for request on port 3000'); 
});app.get('/', (req, res) => { 
    console.log('request made'); 
    res.send('Hello World!'); 
});

這裡,我所做的基本上是,我用express建立了一個簡單的node.js伺服器。但你也可以選擇不使用express的node.js伺服器,如下:

const http = require('http'); 
const server = http.createServer(req, res) => {  console.log('request made'); 
    // setting the response here 
  res.setHeader('Content-Type', 'text/plain'); 
  res.write('Hello World!'); 
  res.end();});server.listen(3000, '0.0.0.0', () => { 
  console.log('listening for requests on port 3000'); 
});

你的 package.json 可能如下所示,由於這是基本的package.json檔案,因此它不包含更多依賴項。但是在你的情況下,你可以擁有比我更多的依賴項。

教你使用Docker容器化Node.js應用程式教你使用Docker容器化Node.js應用程式

好了,現在該建立 Dockerfile 了。很簡單,在資料夾內開啟一個新檔案,並將其命名為Dockerfile。你可以使用任何喜歡的文字編輯器來建立它。看看下面我用於該專案的Dockerfile,你可以根據需要進行編輯。

FROM node:10   
// 我們為專案指定所需的映象名稱 
WORKDIR /usr/src/app 
// 設定工作目錄的路徑 
COPY package*.json// 同時複製package.json和package-lock.json 
RUN npm install 
// 安裝所有依賴項 
COPY . . 
// 複製我們專案中的所有其他檔案 
EXPOSE 3000 
// 公開應用程式執行所在的埠 
CMD ["node", "app.js" ] 
// 在這裡,你可以輸入用於執行應用程式的命令

現在一切就緒,接下來我們要使用 Dockerfile 構建Docker映象。開啟你的終端並執行以下 以構建你的docker映象,確保你的路徑設定為終端中的專案資料夾。

docker build . -t hello-world

注意:hello-world 是我們的docker映象的名稱

這可能需要一些時間,因為它需要從 Docker Hub 中提取Node 映象,並且需要完成你在Dockerfile中提到的所有步驟。流程完成後,就可以從這個docker映象中構建一個容器了。執行以下命令,並確保正確進行埠對映。

docker run -p 8080:3000 --name c1 hello-world

注意:你可以選擇自己喜歡的埠。8080埠屬於我們的本地機器,我們的應用執行在3000埠上,c1是容器的名稱,同樣hello-world是docker的映象

現在你的容器將開始執行,你可以在瀏覽器上檢視你的應用程式。在此之前,在你的終端中執行 docker ps,並驗證你的容器已經開始執行。驗證後,你還可以透過在終端上發出 docker port c1(此處,c1 是你的容器的名稱)命令來檢查埠。

docker port c1 
>> 3000/tcp -> 0.0.0.0:8080

現在開啟瀏覽器並輸入 localhost:8080,然後你將在瀏覽器中看到node.js應用響應。

教你使用Docker容器化Node.js應用程式教你使用Docker容器化Node.js應用程式

總結

恭喜你!你已經使用Docker完成了對Node.js應用程式的容器化。

最好熟悉這些概念,並且不要忘記嘗試使用Docker容器化你的應用程式。

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2721809/,如需轉載,請註明出處,否則將追究法律責任。

相關文章