亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 網(wǎng)站 > Nginx > 正文

Docker容器化部署嘗試——多容器通信(node+mongoDB+nginx)

2024-08-30 12:30:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

原因是這樣的

想要部署一個(gè)mocker平臺(tái),就在朋友的推薦下選擇了 api-mocker 這個(gè)現(xiàn)成的項(xiàng)目

該項(xiàng)目分為服務(wù)端node、客戶(hù)端vue、以及數(shù)據(jù)庫(kù)mongoDB

在嘗試直接部署的時(shí)候發(fā)現(xiàn)需要裝一大堆的環(huán)境,node、mongo、nginx啊,特別的麻煩,之前簡(jiǎn)單的使用過(guò)docker,就在想能不能用docker免環(huán)境直接部署呢?于是就有了這次的嘗試

多容器通信

該項(xiàng)目分為3個(gè)部分,于是就要建立3個(gè)容器(node、mongo、nginx)

那容器之間怎么實(shí)現(xiàn)通信呢?

 # 通過(guò)link指令建立連接 $ docker run --name <Name> -d -p <path1>:<path2> --link <containerName>:<alias> <containerName:tag/imageID>

- --link 容器連接指令
- < containerName > : < alias >
- < 被連接容器名稱(chēng) > : < 容器訪(fǎng)問(wèn)別名 >
- 注:別名在主動(dòng)建立連接的容器中訪(fǎng)問(wèn)被連接容器使用
- 以下指令在容器檢測(cè)連接狀態(tài)
$ curl <alias>

接下來(lái)我們開(kāi)始嘗試部署

實(shí)現(xiàn)過(guò)程

1、構(gòu)建mongo容器

2、構(gòu)建node容器并與mongo容器建立連接

3、構(gòu)建nginx容器并與node容器建立連接

構(gòu)建mongo容器

我們先拉取mongo鏡像

$ docker pull mongo:latest

下面我們讓這個(gè)鏡像跑起來(lái)

 $ docker images REPOSITORY   TAG     IMAGE ID   CREATED    SIZE mongo    latest    05b3651ee24e  2 weeks ago   382MB

--auth 指令開(kāi)啟了mongo的連接身份校驗(yàn) 開(kāi)啟校驗(yàn) 是由于 node 跨容器連接時(shí) 不設(shè)置身份校驗(yàn) 開(kāi)啟服務(wù)端無(wú)法連接上mongo數(shù)據(jù)庫(kù)

```
nodejs.MongoError: [egg-mongoose]Authentication failed.
```

查看容器

$ docker ps -aCONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS      NAMES0d440be90935  mongo    "docker-entrypoint.s…" 14 hours ago  Up 14 hours     0.0.0.0:27017->27017/tcp mock-mongo

由于我們mongo開(kāi)啟了身份驗(yàn)證,所以我們要進(jìn)入mongo容器配置一下node連接時(shí)使用的賬號(hào)

$ docker exec -it mock-mongo /bin/bash$ mongo admin# 創(chuàng)建manager user$ db.createUser({user:"admin", pwd:"admin",roles:[{role:"admin",db:"admin"}]})# 賬號(hào)授權(quán)$ db.auth('admin','admin')

現(xiàn)在我們的mongo數(shù)據(jù)庫(kù)已經(jīng)跑起來(lái)了,接下來(lái)我們就要建立node容器了

構(gòu)建node容器并與mongo容器建立連接

在開(kāi)始構(gòu)建node容器前我們要先約定好mongo容器別名,端口號(hào)以及登錄賬號(hào)密碼

  • mongo容器別名:
  • db mongo端口號(hào):27017
  • 賬號(hào)密碼:admin:admin

我們先修改node服務(wù)端的配置

文件配置 dockerfile/api-mocker/server/config/config.default.js 修改mongo連接配置,db為預(yù)先設(shè)定的mock-mongo容器的別名

 mongoose: { url: 'mongodb://admin:admin@db:27017/api-mock?authSource=admin' },

現(xiàn)在我們編寫(xiě)一個(gè)Dockerfile文件來(lái)構(gòu)建鏡像

 # 指定基礎(chǔ)鏡像 FROM node:latest  # 維護(hù)者 MAINTAINER qiushiyuan1994@qq.com  # 工作目錄 WORKDIR /www  # 將本地文件添拷貝到容器中,不會(huì)解壓 COPY api-mocker node-server/api-mocker  EXPOSE 7001  WORKDIR /www/node-server/api-mocker/server  RUN npm install  WORKDIR /www/node-server/api-mocker  # 構(gòu)建容器后調(diào)用,在容器啟動(dòng)時(shí)才進(jìn)行調(diào)用 CMD ["make", "prod_server"]

我們使用編寫(xiě)好的dockerfile文件構(gòu)建鏡像

 $ docker build -t="mock-server:1.0.0" .

讓我們查看一下鏡像

 $ docker images REPOSITORY   TAG     IMAGE ID   CREATED    SIZE mock-server   1.0.0    957ad2aa1f97  8 minutes ago  674MB mongo    latest    05b3651ee24e  2 weeks ago   382MB

現(xiàn)在就到了關(guān)鍵的一步,我們將mocker-server鏡像運(yùn)行起來(lái),并建立服務(wù)器與數(shù)據(jù)庫(kù)的連接

 

復(fù)制代碼代碼如下:
$ docker run -d -i -t -p 7001:7001 --name mock-server1 --link mock-mongo:db mock-server:1.0.0 /bin/bash

 

讓我們?cè)倏纯船F(xiàn)在正在運(yùn)行的容器

 $ docker ps CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS      NAMES ee780b903c64  mock-server:1.0.0 "/bin/bash"    About a minute ago Up 11 seconds  0.0.0.0:7001->7001/tcp  mock-server 0d440be90935  mongo    "docker-entrypoint.s…" 16 hours ago   Up 16 hours   0.0.0.0:27017->27017/tcp mock-mongo

檢測(cè)node容器和mongo容器的連接狀態(tài)

 $ docker exec -it mock-server /bin/bash $ curl db

現(xiàn)在我們的服務(wù)端和數(shù)據(jù)庫(kù)已經(jīng)建立起了連接,接下來(lái)我們要開(kāi)始部署我們的客戶(hù)端

構(gòu)建nginx容器并與node容器建立連接

在建立nginx前,我們要先約定好,node容器別名,nginx轉(zhuǎn)發(fā)的端口號(hào)以及客戶(hù)端訪(fǎng)問(wèn)nginx域名及端口號(hào)

  • node服務(wù)器別名:node
  • node容器映射的端口號(hào):7001
  • nginx域名:127.0.0.1
  • nginx端口號(hào):90

我們先拉取nginx鏡像并建立容器

$ docker pull nginx:latest$ docker run -p 90:80 --link mock-node:node nginx:latest --name mock-nginx# 查看容器連接狀態(tài)$ docker exec -it mock-nginx /bin/bash$ env# 看到以下數(shù)據(jù)則表示連接成功了NODE_PORT_7001_TCP=tcp://172.17.0.3:7001NODE_PORT_7001_TCP_PORT=7001NODE_ENV_YARN_VERSION=1.9.4

現(xiàn)在我們?cè)诳纯匆呀?jīng)運(yùn)行中的容器

$ docker ps CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS      NAMES 09644025d148  nginx    "nginx -g 'daemon of…" 5 hours ago   Up 5 hours   0.0.0.0:90->80/tcp   mock-nginx ee780b903c64  mock-server:1.0.0 "/bin/bash"    About a minute ago Up 11 seconds  0.0.0.0:7001->7001/tcp  mock-server 0d440be90935  mongo    "docker-entrypoint.s…" 24 hours ago  Up 24 hours   0.0.0.0:27017->27017/tcp mock-mongo

由于前端獨(dú)立部署的原因,我們需要修改nginx的配置,修改nginx的配置的方式有以下幾種

  • 在建立容器是使用-v指令將配置文件掛載到本地主機(jī),在本地修改后在容器重啟nginx
  • 將配置文件復(fù)制到本地主機(jī),修改后替換容器的對(duì)應(yīng)文件,然后再容器內(nèi)重啟nginx
  • ...

我們當(dāng)前操作環(huán)境是17版 15寸macbook pro,掛載需要特殊配置,因此我采用了第二種方式

配置文件修改

  • 容器內(nèi)配置文件路徑 /etc/nginx/conf.d/default.conf
  • 拷貝配置文件至本地
 $ docker cp mock-nginx:/etc/nginx/conf.d/default.conf ~/nginx/default.conf

在nginx配置文件增加以下配置

server { location /mock-api/ {  # node 為指令服務(wù)端容器別名  proxy_pass http://node:7001/; } location /mock {  autoindex on;  alias /root/dist; }}

覆蓋容器內(nèi)配置并重啟nginx

$ docker cp ~/nginx/default.conf mock-nginx:/etc/nginx/conf.d/default.conf# 進(jìn)入容器$ docker exec -it mock-nginx /bin/bash# 重啟nginx,看到以下提示則表示重啟成功$ nginx -s reload2018/11/03 17:23:14 [notice] 68#68: signal process started

接下來(lái)就到了我們的最后激動(dòng)人心的最后一步

修改我們前端項(xiàng)目請(qǐng)求的網(wǎng)絡(luò)域名并打包上傳

// api-mocker/client/config // module.exports > build > serverRootmodule.exports = { build: {  serverRoot: '127.0.0.1:90/mock-api' }}

將打包后的dist文件上傳至nginx配置的/root/dist目錄下

 $ docker cp ~/Sites/api-mocker/client/dist mock-nginx:/root

> 當(dāng)然nginx的容器構(gòu)建也可以編寫(xiě)一個(gè)dockfile文件來(lái)實(shí)現(xiàn),這里我們就不詳細(xì)說(shuō)明了,掛載配置文件和日志至本地主機(jī)有興趣的可以自己嘗試一下復(fù)制代碼

測(cè)試

所有驚心動(dòng)魄的配置我們都已經(jīng)完成,現(xiàn)在我們來(lái)測(cè)試一下

訪(fǎng)問(wèn)前端項(xiàng)目: http://127.0.0.1:90/mock 我們會(huì)看到,以下界面說(shuō)明我們前端項(xiàng)目部署成功

Docker,容器化,多容器通信,node,mongoDB,nginx)

我們嘗試注冊(cè)一個(gè)賬號(hào),看到成功提示,那就說(shuō)明我們整個(gè)項(xiàng)目部署成功了

Docker,容器化,多容器通信,node,mongoDB,nginx)

Docker,容器化,多容器通信,node,mongoDB,nginx)

至此我們的部署就已經(jīng)大功告成了,可以開(kāi)心的mock接口寫(xiě)項(xiàng)目了,撒花~~~

總結(jié)

第一次寫(xiě)文章、第一次這樣部署都是艱難的,自己整理了一下思路,也希望能給大家?guī)?lái)一些幫助

最后附上自己整理的docker常用命令 以及該項(xiàng)目使用配置文件

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到服務(wù)器教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
在线天堂中文资源最新版| 国产精品一站二站| 成人黄色在线| www.成人网| 久久国产精品精品国产色婷婷| av男人天堂一区| 国产裸体永久免费无遮挡| 日韩人妻无码一区二区三区99| 欧美一区二区三区观看| 欧美一区欧美二区| 男人在线观看视频| 99re久久精品国产| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 午夜精品一区二区三区视频| 国产免费av观看| av片在线看| 538精品在线视频| 亚洲欧美另类图片| 激情综合五月婷婷| 日韩视频在线观看视频| 狠狠做深爱婷婷综合一区| 93在线视频精品免费观看| 91最新在线免费观看| eeuss影院18直达| 韩日电影在线观看| 欧美麻豆精品久久久久久| 韩国无码一区二区三区精品| 国产精品初高中精品久久| 开心九九激情九九欧美日韩精美视频电影| 四虎精品成人免费网站| 欧美丰满少妇xxxbbb| 国产又黄又猛视频| 一本大道五月香蕉| 午夜三级在线观看| 日韩欧美国产成人| 麻豆影院在线观看| 一个人看的www片免费高清视频| 亚洲一区 二区| 这里都是精品| 中文字幕无线码一区| 亚洲一区二区三区免费| 国产乱码精品一区二区三区不卡| 久久97人妻无码一区二区三区| 丰满少妇一区二区三区| 日韩精品久久久久久久| 中文字幕中文在线不卡住| 四虎永久免费地址| 国产av人人夜夜澡人人爽| 99成人国产精品视频| 欧美性感美女h网站在线观看免费| 亚洲一区二区三区中文字幕在线| 午夜剧场成人观在线视频免费观看| 欧美日韩综合一区二区三区| 无码人妻精品一区二区中文| 在线观看免费视频一区| 午夜一区二区视频| 欧美亚洲国产视频小说| 久久老女人爱爱| 欧美肥老太太性生活| 91精品国产全国免费观看| 免费日韩视频在线观看| 999精品一区| 日本少妇高潮喷水xxxxxxx| 久久精品国产亚洲av麻豆色欲| 国产偷国产偷精品高清尤物| 国内精品国产三级国产99| 欧美性videos高清精品| 国产日韩中文字幕在线| 国产成人无码精品久久久性色| 成人美女免费网站视频| 国产一区二区三区直播精品电影| 99国产麻豆精品| 免费观看一级欧美片| 在线观看精品视频| av网站在线播放| 你懂的视频在线一区二区| 国产乱子精品一区二区在线观看| 国产精品扒开腿做| 91精品国产91久久久久久久久| 97精品国产福利一区二区三区| 国产视频一区二| 色综合666| 最近2019年中文视频免费在线观看| 国产精品xxx电影| 久久精品蜜桃| 久久精品一区二区不卡| 国产精品极品美女在线观看| 国产精品嫩草影院俄罗斯| 成人免费在线观看视频| 做a视频在线观看| 7878视频在线观看| av不卡在线| 国产黄色一级大片| 久久综合成人| 麻豆传媒在线播放| 亚洲精品在线观看www| 亚洲欧美日韩在线综合| 欧美日韩一级在线观看| 精品婷婷伊人一区三区三| 免费在线观看av网址| 日韩精品伦理第一区| 精品乱码一区二区三区四区| 91精品国产色综合久久不卡电影| av中文在线播放| 一区二区三区|亚洲午夜| 国产伦精品一区二区三区视频痴汉| 狠狠色噜噜狠狠狠狠色吗综合| 日本熟妇一区二区三区| 中文字幕乱码一区| 国产精品久久久久久久久久久久| 午夜精品久久久久久久99| 超碰在线观看免费| 国产精品自在自线| 亚洲精品视频专区| 日韩电影免费观看高清完整版| 亚洲第一在线播放| 成人激情视屏| 久久亚洲国产精品成人av秋霞| 狠狠色丁香九九婷婷综合五月| 国产成人毛毛毛片| 精品无码一区二区三区| 欧美黑人欧美精品刺激| 中文字幕人妻熟女人妻a片| 色综合久久88| 欧美日韩在线视频免费播放| 性生活黄色大片| 国产精品福利观看| 国产中文在线播放| 日日爱66.cn| 亚洲福利影片在线| 成人免费观看在线视频| 九九免费视频| 中文字幕资源在线观看| 国产精品午夜电影| 欧美乱强性伦xxxxx| 无码国产精品一区二区免费式直播| 国产成人av免费看| 国产精品天天av精麻传媒| 欧美激情第6页| 熟妇人妻av无码一区二区三区| 国产精品嫩草影院久久久| 欧美中文字幕在线观看视频| 国产亚洲精aa在线看| 久久综合久久鬼色| 黄页在线免费观看| 草莓视频末满18勿| 高清欧美精品xxxxx| 天天摸天天操天天爽| 91国产一区| 成人精品视频在线观看| 91系列在线播放| 欧美一级欧美一级在线播放| 97精品超碰一区二区三区| 中文字幕中文字幕在线中文字幕三区| 在线观看麻豆视频| 国产精品一区二区男女羞羞无遮挡| 欧美日本另类xxx乱大交| 亚洲18在线看污www麻豆| 婷婷综合在线观看| 美女亚洲一区| 欧美极品美女电影一区| 日韩欧美黄色大片| 性欧美精品中出| 国产乱码在线| 成在线人视频免费视频| 亚洲午夜一区二区三区| 在线高清一区| 亚洲美女免费在线| 亚洲色图狂野欧美| 日韩av图片| 国产乱码精品一区二区三区忘忧草| 欧美日韩精品亚洲精品| 日韩黄色精品视频| 91精品国产色综合久久不卡98口| 欧美一区二区三区喷汁尤物| 精品在线视频一区二区| 欧洲精品一区二区三区| 无码国产精品一区二区免费式直播| 污污污污污污www网站免费| 亚洲免费人成在线视频观看| 欧美日本免费一区二区三区| 国产一区 二区 三区一级| 久久久久九九九九| 国产美女特级嫩嫩嫩bbb片| 伊人av综合网| 日韩精品一区二区三区电影| 欧美亚洲国产日韩| av电影在线观看不卡| 亚洲成a人片综合在线| 伊人网中文字幕| 日本边添边摸边做边爱的第三级| 亚洲乱亚洲乱妇无码| 中文字幕在线一二| 99久久国产免费免费| 国产女主播av| 国际av在线| 日本网站在线看| 国产亚洲人成网站在线观看| 精品无码一区二区三区电影桃花| 成人免费网站入口| 岛国精品一区二区| 天天摸夜夜添狠狠添婷婷| 96视频在线观看欧美| 偷拍亚洲精品| 午夜视频在线观看国产| www.99re7.com| 成人国产电影在线观看| 国产精品中文字幕制服诱惑| 97精品视频在线观看自产线路二| 国产av不卡一区二区| 欧美日韩国产综合视频| 青青草精品视频在线观看| 久久躁狠狠躁夜夜爽| 高清欧美性猛交xxxx黑人猛| 极品销魂美女一区二区三区| 欧美在线视屏| 国产亚洲精品精品国产亚洲综合| 日韩亚洲欧美中文在线| 亚洲免费观看高清完整版在线| 丰满少妇在线观看网站| 在线综合亚洲欧美在线视频| 日韩少妇与小伙激情| 日本久久精品一区二区| 美女做爰内谢全过程视频| 欧美激情视频在线免费观看 欧美视频免费一| 黄色www视频| 小说区图片区图片区另类灬| 久久综合亚洲色hezyo国产| 婷婷视频一区二区三区| 国产麻豆视频一区| 深夜福利在线观看直播| 污污网站免费观看| 欧美一区二区三区四区视频| 两个人看的无遮挡免费视频| 97久久超碰国产精品| 久操视频在线免费播放| 国产精品你懂的| 日韩一区三区| 91抖音在线观看| 欧美人善zozσ性伦交| 久久免费精品| 欧美性极品videosbest| 91免费观看视频在线| 亚洲国产精品无码久久久| 久久综合色一本| 小说区图片区亚洲| 夜夜狠狠擅视频| 麻豆tv在线播放| 成人av第一页| 在线亚洲精品福利网址导航| 直接在线观看的三级网址| 黄色片免费在线| 天堂аⅴ在线地址8| 极品国产人妖chinesets亚洲人妖| 亚洲国产欧美一区二区三区不卡| 欧美国产1区2区| 日韩av网站免费在线| 伊人网视频在线| wwwwxxxx日韩| 国产成人综合一区二区三区| av免费在线观看网站| 四虎精品欧美一区二区免费| 欧美精品无码一区二区三区| 国产一区二区三区四区二区| 久久久久久久福利| 麻豆精品91| 蜜桃传媒一区二区| 亚洲一区二区在| 在线免费观看av网址| 欧美日韩一区小说| 欧美中文字幕| 老熟妇仑乱一区二区av| 精品免费在线| 成人av在线资源网| 日韩理论片av| jizz免费观看视频| 精品国精品国产自在久国产应用| 黄色av电影在线播放| 国产日韩欧美综合一区| 久久国产精品久久| 久色乳综合思思在线视频| 成人欧美一区二区三区黑人免费| 97色在线视频| 欧美草草影院在线视频| 97在线免费观看视频| 亚洲成人在线网站| av午夜在线| 日韩欧美中文字幕不卡| 2022国产精品视频| 亚洲一区二区毛片| 久久午夜免费电影| 亚洲黄色小视频在线观看| 日本aⅴ中文| 亚洲欧洲日韩一区二区三区| 亚洲国产精品va在线看黑人动漫| 国产盗摄x88av| 欧美最猛性xxxxx亚洲精品| 亚洲综合激情另类专区老铁性| 欧美丰满熟妇bbbbbb百度| 欧美电影免费观看高清| 国内精品**久久毛片app| 99久久精品免费看国产免费软件| 91在线观看高清| 国产精品久久久久久亚洲色| 色综合久久久久久久久五月| 激情五月婷婷基地| 男人的天堂亚洲在线| 久久久久久久久久久久91| 精品久久免费| 99国产精品自拍| 在线观看av资源| 美女高潮久久久| 欧美午夜精品理论片a级大开眼界| 亚洲免费电影在线| 久久香蕉国产线看观看99| 国产精品久久久久久久9999| 一本到三区不卡视频| 精品国产乱码久久久久久浪潮| 日韩av网站在线观看| 一区二区三区在线视频免费| 精品国产乱码久久久久久1区2匹| 四虎免费播放| 国产精品自产拍在线网站| 精品成av人一区二区三区| 亚洲成av人影院在线观看网| 91美女片黄在线观看91美女| 影音先锋男人看片资源| 男女做爰猛烈刺激|