摘要:前言項(xiàng)目中會(huì)用到做中間層,部署則是用到了,在這里總結(jié)記錄下部署要點(diǎn)和步驟關(guān)于的介紹和安裝這里就不贅述了,網(wǎng)上也有很多相關(guān)的教程和文章了,需要可自行搜索查看。
前言
????項(xiàng)目中會(huì)用到node做中間層,部署node則是用到了docker,在這里總結(jié)、記錄下部署要點(diǎn)和步驟;關(guān)于docker的介紹和安裝這里就不贅述了,網(wǎng)上也有很多相關(guān)的教程和文章了,需要可自行搜索查看。
`-- docker-node |-- data |-- server |-- app.js |-- Dockerfile |-- process.yml |-- package.json |-- docker-compose.yml1、創(chuàng)建Node.js程序
app.js
const express = require("express"); const app = express(); app.get("/", (req, res) => res.send("hello world!")); app.listen(3008);2、創(chuàng)建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中可以看到我們是通過(guò)pm2-docker運(yùn)行node應(yīng)用的,利用PM2我們可以監(jiān)聽(tīng)文件變化,達(dá)到應(yīng)用重啟、日志分存等效果;這里我們需要一個(gè)process.yml的配置文件,相關(guān)用法可以查看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、創(chuàng)建docker-compose.yml
生產(chǎn)環(huán)境上我們用到往往不只一個(gè)容器,我們可以通過(guò)一個(gè)配置文件來(lái)管理多個(gè)Docker容器,然后使用docker-compose來(lái)啟動(dòng),停止、重啟應(yīng)用。
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/Shanghai4、啟動(dòng)容器
上述幾個(gè)文件創(chuàng)建完畢,我們執(zhí)行下面的命令,則會(huì)創(chuàng)建我們的鏡像并且啟動(dòng)容器
$ docker-compose -f docker-compose.yml up -d5、測(cè)試
1、訪問(wèn)本地的3008端口
2、測(cè)試當(dāng)代碼變化,node自動(dòng)重啟功能,我們把"hello world!"改為"restart!?。?!",再次刷新頁(yè)面
3、利用Portainer管理容器;可視化的界面相比命令行來(lái)說(shuō),我們可以很方便、快速查看容器日志、容器配置、狀態(tài)、以及對(duì)進(jìn)行重啟、刪除等操作;我們?cè)L問(wèn)本地9000端口即可(docker-compese.yml中配置),結(jié)果如下。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99359.html
摘要:由于之前沒(méi)安裝過(guò)這步跳過(guò)。安裝使用推薦方法設(shè)置的存儲(chǔ)庫(kù)并從中進(jìn)行安裝。設(shè)置存儲(chǔ)庫(kù)安裝所需的包。這些存儲(chǔ)庫(kù)包含在上面的文件中,但默認(rèn)情況下處于禁用狀態(tài)。執(zhí)行以上命令。 由于很多項(xiàng)目都需要在特定的環(huán)境下才能穩(wěn)定運(yùn)行,在網(wǎng)上搜索一番后,覺(jué)得Doceker是一個(gè)很不錯(cuò)的容器化平臺(tái),決定學(xué)習(xí)踩坑,先把Docker安裝上吧.Docker有兩個(gè)版本,社區(qū)版(CE),企業(yè)版(EE),這里的是社區(qū)版。服...
摘要:如果使用阿里云函數(shù)計(jì)算,您將高峰期每小時(shí)的訪問(wèn)日志,或者低谷期每小時(shí)的訪問(wèn)日志交給一個(gè)計(jì)算函數(shù)處理,并將處理結(jié)果存到中。下面結(jié)合阿里云的函數(shù)計(jì)算產(chǎn)品來(lái)講解各個(gè)應(yīng)用場(chǎng)景中架構(gòu)以及如何解決的場(chǎng)景中的痛點(diǎn)。 摘要: Serverless概念是近年來(lái)特別火的一個(gè)技術(shù)概念,基于這種架構(gòu)能構(gòu)建出很多應(yīng)用場(chǎng)景,適合各行各業(yè),只要對(duì)輕計(jì)算、高彈性、無(wú)狀態(tài)等場(chǎng)景有訴求的用戶都可以通過(guò)本文來(lái)普及一些基礎(chǔ)概...
摘要:馬拉松會(huì)匹配每個(gè)和提供的資源,然后通過(guò)將任務(wù)下發(fā)下去。對(duì)外暴露的就是負(fù)載均衡的某個(gè)服務(wù),后面自動(dòng)將流量轉(zhuǎn)發(fā)到某個(gè)容器的端口上。還有一直辦法是用內(nèi)網(wǎng)的,這個(gè)會(huì)維護(hù)現(xiàn)有的容器列表端口,并且返回任意一個(gè)的端口,頁(yè)實(shí)現(xiàn)了負(fù)載均衡和服務(wù)發(fā)現(xiàn)功能。 演講嘉賓 數(shù)人云COO 謝樂(lè)冰 在德國(guó)工作十年,回國(guó)后加入惠普電信運(yùn)營(yíng)商部門(mén),擁有多年項(xiàng)目經(jīng)驗(yàn)和創(chuàng)業(yè)公司工作經(jīng)驗(yàn)。在數(shù)人云負(fù)責(zé)產(chǎn)品售前和運(yùn)營(yíng),專注行...
閱讀 881·2021-11-15 11:37
閱讀 3619·2021-11-11 16:55
閱讀 3284·2021-11-11 11:01
閱讀 1008·2019-08-30 15:43
閱讀 2755·2019-08-30 14:12
閱讀 695·2019-08-30 12:58
閱讀 3397·2019-08-29 15:19
閱讀 2037·2019-08-29 13:59