摘要:前言項目中會用到做中間層,部署則是用到了,在這里總結記錄下部署要點和步驟關于的介紹和安裝這里就不贅述了,網上也有很多相關的教程和文章了,需要可自行搜索查看。
前言
項目中會用到node做中間層,部署node則是用到了docker,在這里總結、記錄下部署要點和步驟;關于docker的介紹和安裝這里就不贅述了,網上也有很多相關的教程和文章了,需要可自行搜索查看。
項目結構
-- docker-node ??|-- data ??|-- server ????|-- app.js ????|-- Dockerfile ????|-- process.yml ????|-- package.json ??|-- docker-compose.yml
1、創建Node.js程序
app.js const express = require("express"); const app = express(); app.get("/", (req, res) => res.send("hello world!"));app.listen(3008);
2、創建Dockerfile
FROM node:8.9-alpine RUN mkdir -p /usr/src/app WORKDIR /usr/src/app RUN npm set registry https://registry.npm.taobao.org/ RUN npm install CMD ["./node_modules/pm2/bin/pm2-docker", "process.yml"]
從Dockerfile中可以看到我們是通過pm2-docker運行node應用的,利用PM2我們可以監聽文件變化,達到應用重啟、日志分存等效果;這里我們需要一個process.yml的配置文件,相關用法可以查看PM2文檔。
process.yml
apps:
?- script?: "app.js" ??name??: "dokcer-node" ??exec_mode: "fork" ??watch?: true ??instances: 1 ??log_date_format : "YYYY-MM-DD HH:mm Z" ??ignore_watch: ["node_modules"]
3、創建docker-compose.yml
生產環境上我們用到往往不只一個容器,我們可以通過一個配置文件來管理多個Docker容器,然后使用docker-compose來啟動,停止、重啟應用。
docker-compose.yml
version: "3.0" services: ?server_node: ??container_name: server-node ??build: ???context: ./server ??volumes: ???- ./server:/usr/src/app ??ports: ???- "3008:3008" ??environment: ???- TZ=Asia/Shanghai ?portainer: ??image: portainer/portainer:1.11.4 ??container_name: portainer ??expose: ???- "9000" ??ports: ???- "9000:9000" ??volumes: ???- /var/run/docker.sock:/var/run/docker.sock ???- ./data/portainer:/data ??environment: ???- TZ=Asia/Shanghai
4、啟動容器
上述幾個文件創建完畢,我們執行下面的命令,則會創建我們的鏡像并且啟動容器
$ docker-compose -f docker-compose.yml up -d
5、測試
1、訪問本地的3008端口
2、測試當代碼變化,node自動重啟功能,我們把"hello world!"改為"restart!!!!",再次刷新頁面
3、利用Portainer管理容器;可視化的界面相比命令行來說,我們可以很方便、快速查看容器日志、容器配置、狀態、以及對進行重啟、刪除等操作;我們訪問本地9000端口即可(docker-compese.yml中配置),結果如下。
以上就是本文的全部內容,希望對大家的學習有所幫助,
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40210.html
摘要:前言項目中會用到做中間層,部署則是用到了,在這里總結記錄下部署要點和步驟關于的介紹和安裝這里就不贅述了,網上也有很多相關的教程和文章了,需要可自行搜索查看。 前言 項目中會用到node做中間層,部署node則是用到了docker,在這里總結、記錄下部署要點和步驟;關于docker的介紹和安裝這里就不贅述了,網上也有很多相關的教程和文章了,需要可自行搜索查看。 項目結構 -- docke...
摘要:前言項目中會用到做中間層,部署則是用到了,在這里總結記錄下部署要點和步驟關于的介紹和安裝這里就不贅述了,網上也有很多相關的教程和文章了,需要可自行搜索查看。 前言 ????項目中會用到node做中間層,部署node則是用到了docker,在這里總結、記錄下部署要點和步驟;關于docker的介紹和安裝這里就不贅述了,網上也有很多相關的教程和文章了,需要可自行搜索查看。 項目結構 `-- ...
摘要:接下來我們將逐步的減少這個鏡像的體積。優化生產環境鏡像使用鏡像大幅減小鏡像體積的最簡單和最快的方法是選擇一個小得多的基本鏡像。使用多階段構建可以充分利用鏡像的緩存,大大減少最終部署到生產環境的時間。 關注作者github每日一道面試題詳解 你討厭部署你的應用程序花費很長時間嗎? 對于單個容器來說,超過gb并不是最佳實踐。每次部署新版本時都要處理數十億字節,這對我們來說并不太合適。 本文...
摘要:簡介是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的機器上,也可以實現虛擬化。該虛擬機需要安裝操作系統以便在您機上運行。 Docker簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。 docker的英文本意是碼頭工人...
閱讀 3616·2021-11-24 09:39
閱讀 2546·2021-11-15 11:37
閱讀 2210·2021-11-11 16:55
閱讀 5154·2021-10-14 09:43
閱讀 3703·2021-10-08 10:05
閱讀 3006·2021-09-13 10:26
閱讀 2326·2021-09-08 09:35
閱讀 3535·2019-08-30 15:55