国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務(wù)器 > Web服務(wù)器 > 正文

Docker Stack 部署web集群的方法步驟

2024-09-01 13:56:34
字體:
供稿:網(wǎng)友

Docker越來越成熟,功能也越來越強(qiáng)大。使用Dokcer Stack做服務(wù)集群也是非常的方便,docker自己就提供了負(fù)載功能,感覺很方便,就想給大家分享一下,做一個(gè)簡單的教程。

環(huán)境

我是用了兩臺centos7的虛擬機(jī)來做這個(gè)教程他們的ip分別是

主服務(wù)器:192.168.0.105 // 也是私有倉庫服務(wù)器服務(wù)器2: 192.168.0.49

這篇帖子中所有的代碼 github地址:https://github.com/lpxxn/godockerswarm

設(shè)置Docker Swarm

我以192.168.0.105做為主服務(wù)器,在他上面開啟swarm

docker swarm init

執(zhí)行命令后會給出加入這個(gè)swarm的命令

Docker,Stack,web集群

在192.168.0.49上執(zhí)行命令加入swarm

docker swarm join --token SWMTKN-1-425vswwmb8o34uhnmo58w0k4rfzs5okjtye7mokpqps1vl9ymq-0p6pr2gua7l8a6udb67tfndoo 192.168.0.105:2377

Docker,Stack,web集群

這樣我們就建好了swarm,兩臺主機(jī)現(xiàn)在建立好了關(guān)系。

web服務(wù)

web服務(wù)是用go語言寫一個(gè)簡單的接口,返回主機(jī)的名稱:這樣方便我們查看是否有負(fù)載

package mainimport (  "fmt"  "log"  "net/http"  "os")func main() {  http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) {    hostName, _ := os.Hostname()    fmt.Fprintf(w, "HostName: %s", hostName)  })  log.Fatal(http.ListenAndServe(":8000", nil))}

Docker file

看一下dockerfile文件:

執(zhí)行的意思就是基于golang境像,把代碼復(fù)制到相應(yīng)文件夾,暴露出端口,運(yùn)行程序。簡單吧

FROM golang# Copy the current directory contents into the containerCOPY . /go/src/github.com/lpxxn/godockerswarm/WORKDIR /go/src/github.com/lpxxn/godockerswarm/RUN go buildEXPOSE 8000CMD ["./godockerswarm"]

看一下dockerfile 文件所在的文件夾

Docker,Stack,web集群

在這個(gè)目錄下執(zhí)行docker build命令:

docker build . -t goweb:1.0

Docker,Stack,web集群

你可以運(yùn)行一下新生成的鏡像

docker run -p 8100:8000 7a7e3

Docker,Stack,web集群

鏡像提交到私有倉庫

關(guān)于如何搭建私有倉庫服務(wù)器我這里的就多說了,可以去我之前的帖子看一下

因?yàn)榧旱纳蠙C(jī)器是自動(dòng)從倉庫取鏡像然后再運(yùn)行程序,所以需要將我們上面生成的鏡像推送到我們的私有倉庫上去。我自己搭建的

使用tag重新命名

docker tag goweb:1.0 lpxxn.com:5000/goweb:1.0

Docker,Stack,web集群

推送

docker push lpxxn.com:5000/goweb:1.0

Docker,Stack,web集群

docker-compose文件

接下來創(chuàng)建docker-compose.yml文件

image就是我們上面創(chuàng)建好的鏡像。運(yùn)行5個(gè)應(yīng)用程序,docker會自己做負(fù)載,端口映射8111,失敗時(shí)自動(dòng)重啟服務(wù),并且創(chuàng)建了自己的網(wǎng)絡(luò),當(dāng)有多個(gè)server服務(wù)時(shí)這個(gè)非常有用。

里面的具體參數(shù),大家可以看官方教程:

https://docs.docker.com/compose/compose-file/

version: "3"services: web:  image: lpxxn.com:5000/goweb:1.0  deploy:   replicas: 5   resources:    limits:      cpus: "0.1"     memory: 50M   restart_policy:    condition: on-failure  ports:   - "8111:8000"  networks:    - gowebnetnetworks:  gowebnet:

部署應(yīng)用

到了最后的階段了,部屬一樣很簡單,執(zhí)行deploy命令

docker stack deploy -c docker-compose.yml mygoweb

Docker,Stack,web集群

查看啟動(dòng)的服務(wù)

docker service ps mygoweb

Docker,Stack,web集群

Docker,Stack,web集群

測試服務(wù)

看這些返回的主機(jī)名:不一樣吧。docker為我們做了負(fù)載了。

Docker,Stack,web集群

這篇帖子中所有的代碼github地址:https://github.com/lpxxn/godockerswarm

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


注:相關(guān)教程知識閱讀請移步到服務(wù)器教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉禾县| 靖西县| 隆德县| 宝山区| 出国| 石首市| 靖宇县| 蕲春县| 贡嘎县| 府谷县| 达州市| 色达县| 靖西县| 石林| 鄄城县| 平陆县| 苍山县| 阿荣旗| 上思县| 繁峙县| 托克托县| 仁寿县| 房山区| 曲阳县| 巨野县| 宁安市| 嫩江县| 崇仁县| 沈丘县| 德江县| 鹤峰县| 阜南县| 双城市| 闻喜县| 龙川县| 宝应县| 华容县| 衡阳县| 德保县| 虹口区| 花莲市|