成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Docker堆棧如何管理-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Docker堆棧如何管理,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷(xiāo),提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)站開(kāi)發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷(xiāo)、微信小程序定制開(kāi)發(fā)、公眾號(hào)商城、等建站開(kāi)發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專(zhuān)家,為不同類(lèi)型的客戶(hù)提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶(hù)在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。

具體如下:

了解分布式應(yīng)用程序?qū)哟谓Y(jié)構(gòu)的頂層:堆棧。堆棧是一組相互關(guān)聯(lián)的服務(wù),它們可以共享依賴(lài)關(guān)系,并且可以一起協(xié)調(diào)和縮放。單個(gè)堆棧能夠定義和協(xié)調(diào)整個(gè)應(yīng)用程序的功能。

添加一個(gè)新服務(wù)并重新部署

將服務(wù)添加到docker-compose.yml文件很容易,首先添加一個(gè)免費(fèi)的可視化器服務(wù),使我們能看到是如何調(diào)度容器。在編輯器中打開(kāi)docker-compose.yml,并用下面的代碼替換它的內(nèi)容:

version: "3"
services:
 web:
 # 用你的名稱(chēng)和鏡像細(xì)節(jié)替換username/repo:tag
 image: username/repo:tag
 deploy:
  replicas: 5
  restart_policy:
  condition: on-failure
  resources:
  limits:
   cpus: "0.1"
   memory: 50M
 ports:
  - "80:80"
 networks:
  - webnet
 visualizer:
 image: dockersamples/visualizer:stable
 ports:
  - "8080:8080"
 volumes:
  - "/var/run/docker.sock:/var/run/docker.sock"
 deploy:
  placement:
  constraints: [node.role == manager]
 networks:
  - webnet
networks:
 webnet:

這里唯一新增的就是名為visualizer的web對(duì)等服務(wù),在這里可以看到兩個(gè)新東西:volumes密鑰,賦予visualizer訪(fǎng)問(wèn)Docker的主機(jī)套接字文件的權(quán)限,以及一個(gè)placement密鑰,確保此服務(wù)只能在集群管理器上運(yùn)行。這個(gè)由Docker創(chuàng)建的開(kāi)源項(xiàng)目構(gòu)建的容器可以顯示集群上運(yùn)行的Docker服務(wù)。

確保你的終端被配置為與myvm1進(jìn)行通信,運(yùn)行docker-machine ls列出機(jī)器,并確保已連接到myvm1,如果需要可以重新運(yùn)行docker-machine env myvm1,然后運(yùn)行給定的命令來(lái)配置終端。在管理器上重新運(yùn)行docker stack deploy命令,任何需要更新的服務(wù)都將被更新:

$ docker stack deploy -c docker-compose.yml getstartedlab

docker-compose.yml文件中可以看到,visualizer在端口8080上運(yùn)行,通過(guò)運(yùn)行docker-machine ls來(lái)獲取其中一個(gè)節(jié)點(diǎn)的IP地址,轉(zhuǎn)到8080端口的IP地址,將看到visualizer正在運(yùn)行:

Docker堆棧如何管理

visualizer的單個(gè)副本按照預(yù)期在管理器上運(yùn)行,并且網(wǎng)絡(luò)的5個(gè)實(shí)例遍布整個(gè)集群,可以通過(guò)運(yùn)行docker stack ps <stack>來(lái)證實(shí)這個(gè)可視化:

$ docker stack ps getstartedlab

visualizer是一個(gè)獨(dú)立的服務(wù),可以在任何包含它的應(yīng)用程序中運(yùn)行,它不依賴(lài)于其他任何東西?,F(xiàn)在創(chuàng)建一個(gè)具有依賴(lài)性的服務(wù),Redis服務(wù)將提供訪(fǎng)問(wèn)者計(jì)數(shù)器。

數(shù)據(jù)持久化

再次通過(guò)相同的工作流程來(lái)添加一個(gè)用于存儲(chǔ)應(yīng)用程序數(shù)據(jù)的Redis數(shù)據(jù)庫(kù),保存這個(gè)新的docker-compose.yml文件,最后添加一個(gè)Redis服務(wù):

version: "3"
services:
 web:
 # 用你的名稱(chēng)和鏡像細(xì)節(jié)替換username/repo:tag
 image: username/repo:tag
 deploy:
  replicas: 5
  restart_policy:
  condition: on-failure
  resources:
  limits:
   cpus: "0.1"
   memory: 50M
 ports:
  - "80:80"
 networks:
  - webnet
 visualizer:
 image: dockersamples/visualizer:stable
 ports:
  - "8080:8080"
 volumes:
  - "/var/run/docker.sock:/var/run/docker.sock"
 deploy:
  placement:
  constraints: [node.role == manager]
 networks:
  - webnet
 redis:
 image: redis
 ports:
  - "6379:6379"
 volumes:
  - /home/docker/data:/data
 deploy:
  placement:
  constraints: [node.role == manager]
 command: redis-server --appendonly yes
 networks:
  - webnet
networks:
 webnet:

Redis在Docker庫(kù)中有一個(gè)官方鏡像,并且已經(jīng)被授予redis的簡(jiǎn)短鏡像名稱(chēng),所以在這里沒(méi)有username/repo。Redis端口6379已經(jīng)由Redis預(yù)先配置好,從容器中暴露給主機(jī),在docker-compose.yml文件中,將它從主機(jī)暴露給外部,這樣就可以為任何節(jié)點(diǎn)到Redis桌面管理器中,并管理這個(gè)Redis實(shí)例。

最重要的是,redis規(guī)范中有幾件事情使數(shù)據(jù)在這個(gè)堆棧的部署之間持續(xù)存在:redis總是在管理器上運(yùn)行,所以它總是使用相同的文件系統(tǒng);redis在主機(jī)的文件系統(tǒng)中訪(fǎng)問(wèn)一個(gè)任意目錄作為容器內(nèi)部的/data,這是Redis存儲(chǔ)數(shù)據(jù)的地方??傊?,這是在Redis數(shù)據(jù)的主機(jī)物理文件系統(tǒng)中創(chuàng)建“真實(shí)來(lái)源”。如果沒(méi)有這個(gè),Redis將把它的數(shù)據(jù)存儲(chǔ)在容器文件系統(tǒng)中的/data中,如果這個(gè)容器被重新部署的話(huà),這些數(shù)據(jù)將被清除。

這個(gè)真實(shí)來(lái)源有兩個(gè)組成部分:placement在Redis服務(wù)上的placement約束,確保它始終使用相同的主機(jī);創(chuàng)建的volumes允許容器作為/data(在Redis容器內(nèi))訪(fǎng)問(wèn)/data(在主機(jī)上),在容器來(lái)來(lái)去去的時(shí)候,存儲(chǔ)在指定主機(jī)上的/data文件將會(huì)持續(xù)存在,從而保持連續(xù)性。

在管理器上創(chuàng)建一個(gè)/data目錄:

$ docker-machine ssh myvm1 "mkdir ./data"

確保終端被配置為與myvm1進(jìn)行通信,運(yùn)行docker-machine ls列出機(jī)器,并確保已連接到myvm1,如果需要可以重新運(yùn)行docker-machine env myvm1,然后運(yùn)行給定的命令來(lái)配置終端。在管理器上重新運(yùn)行docker stack deploy命令,任何需要更新的服務(wù)都將被更新:

$ docker stack deploy -c docker-compose.yml getstartedlab

運(yùn)行docker service ls以驗(yàn)證這三個(gè)服務(wù)是否按預(yù)期運(yùn)行:

$ docker service ls

查看您的某個(gè)節(jié)點(diǎn)的網(wǎng)頁(yè),您將看到訪(fǎng)客計(jì)數(shù)器的結(jié)果,該計(jì)數(shù)器現(xiàn)在已經(jīng)存在并將信息存儲(chǔ)在Redis上:

Docker堆棧如何管理

另外,使用任一節(jié)點(diǎn)的IP地址8080端口訪(fǎng)問(wèn)可視化器,將看到隨webvisualizer服務(wù)一起運(yùn)行的redis服務(wù):

Docker堆棧如何管理

關(guān)于“Docker堆棧如何管理”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

當(dāng)前題目:Docker堆棧如何管理-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://jinyejixie.com/article12/isegc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、軟件開(kāi)發(fā)、做網(wǎng)站、App開(kāi)發(fā)、手機(jī)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
宣恩县| 镇原县| 广宗县| 洛川县| 弥渡县| 名山县| 河北省| 东乡县| 酉阳| 大洼县| 高青县| 望奎县| 淮滨县| 嘉禾县| 曲松县| 徐闻县| 邓州市| 邵武市| 泸定县| 雅安市| 邵武市| 闽侯县| 万全县| 城市| 伊宁县| 秭归县| 舟山市| 台中市| 五河县| 炉霍县| 科技| 玉树县| 新昌县| 平远县| 凤翔县| 涿州市| 青岛市| 南充市| 施甸县| 罗平县| 宽城|