DockerStack如何部署web集群-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Docker Stack如何部署web集群”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Docker Stack如何部署web集群”這篇文章吧。

鐘樓網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,鐘樓網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鐘樓近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的鐘樓做網(wǎng)站的公司定做!

環(huán)境

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

主服務(wù)器:192.168.0.105 // 也是私有倉(cāng)庫(kù)服務(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í)行命令后會(huì)給出加入這個(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,兩臺(tái)主機(jī)現(xiàn)在建立好了關(guān)系。

web服務(wù)

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

package main

import (
  "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)行程序。簡(jiǎn)單吧

FROM golang

# Copy the current directory contents into the container
COPY . /go/src/github.com/lpxxn/godockerswarm/

WORKDIR /go/src/github.com/lpxxn/godockerswarm/

RUN go build

EXPOSE 8000

CMD ["./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集群

鏡像提交到私有倉(cāng)庫(kù)

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

地址:https://www.jb51.net/article/156168.htm

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

使用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文件

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

image就是我們上面創(chuàng)建好的鏡像。運(yùn)行5個(gè)應(yīng)用程序,docker會(huì)自己做負(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: 
   - gowebnet
networks: 
 gowebnet:

部署應(yīng)用

到了最后的階段了,部屬一樣很簡(jiǎn)單,執(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集群

測(cè)試服務(wù)

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

Docker Stack如何部署web集群

以上是“Docker Stack如何部署web集群”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:DockerStack如何部署web集群-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://bm7419.com/article22/dsecjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、微信小程序軟件開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、ChatGPT

廣告

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

商城網(wǎng)站建設(shè)