教你使用Docker容器化Node.js應用程式
導讀 | 容器化應用程式在當今世界越來越流行,因為它們能夠解決幾乎每個專案團隊都面臨的一些主要問題。 |
在本文中,我將告訴你如何使用Docker容器化你的node.js應用程式。在繼續之前,請確保你的計算機中已安裝Docker。
Docker:
完成安裝過程後,開啟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檔案,因此它不包含更多依賴項。但是在你的情況下,你可以擁有比我更多的依賴項。
好了,現在該建立 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容器化你的應用程式。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2721809/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker容器化部署Python應用DockerPython
- Docker容器與虛擬化技術:OpenEuler 部署 docker容器應用Docker
- Docker容器學習梳理 - 應用程式容器環境部署Docker
- 使用Docker容器化部署實踐之Django應用部署(一)DockerDjango
- 使用Jexus 容器化您的 Blazor 應用程式Blazor
- 應用容器引擎-DockerDocker
- .NET Core容器化之多容器應用部署(Docker-Compose)Docker
- .NET Core容器化之多容器應用部署@Docker-ComposeDocker
- 使用Docker容器化SpringBoot+Dubbo應用的實踐DockerSpring Boot
- docker容器化.NET程式Docker
- Docker容器中執行.Net Core應用程式Docker
- zabbix容器化安裝及監控docker應用Docker
- 利用ELK搭建Docker容器化應用日誌中心Docker應用日誌
- Docker容器中應用程式的log輸出管理Docker
- ?從零開始Docker化你的Node.js應用DockerNode.js
- Docker Compose 多容器應用Docker
- Vue.js應用程式容器化部署Vue.js
- 使用Docker WildFly和wildfly-maven-plugin實現Java應用容器化DockerMavenPluginJava
- Docker應用容器日誌資訊收集Docker
- 模組化方式構建Node.js應用程式Node.js
- 強化Docker容器:禁用SUID程式DockerUI
- 在Docker容器中執行ASP.NET MVC應用程式DockerASP.NETMVC
- Java服務端容器化:Docker與Kubernetes的應用Java服務端Docker
- java應用docker化JavaDocker
- Docker的安裝與容器應用部署Docker
- 2.3 應用程式容器中的應用程式概述
- 如何快速部署容器化應用
- 容器化改造應用-資料
- Docker虛擬化管理:30分鐘教你學會用DockerDocker
- Docker容器雲在金融行業的應用Docker行業
- Docker容器:將帶UI的程式直接轉為Web應用,so easyDockerUIWeb
- .NET Core容器化(Docker)Docker
- .NET Core容器化@DockerDocker
- 使用 Docker 容器應該避免的 10 個事情Docker
- 基於Docker應用容器日誌檔案收集Docker
- 使用 Docker 部署 Node 應用Docker
- 使用Docker安裝應用Docker
- SpringBoot應用Docker化Spring BootDocker