濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Docker Stack 部署web集群的方法步驟

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

熱門(mén)標(biāo)簽:菏澤crm外呼系統(tǒng)價(jià)格 遼寧電銷平臺(tái)外呼系統(tǒng)軟件 信陽(yáng)銷售外呼系統(tǒng)招商 物超所值的400電話申請(qǐng) 如何在各種地圖標(biāo)注自己的地址 coreldraw地圖標(biāo)注 百應(yīng)電銷機(jī)器人靠譜嗎 申請(qǐng)400電話號(hào)碼多少錢(qián) 營(yíng)銷電銷機(jī)器人招商

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

環(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ù)器,在他上面開(kāi)啟swarm

docker swarm init

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

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

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

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

web服務(wù)

web服務(wù)是用go語(yǔ)言寫(xiě)一個(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 文件所在的文件夾

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

docker build . -t goweb:1.0

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

docker run -p 8100:8000 7a7e3

鏡像提交到私有倉(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 push lpxxn.com:5000/goweb:1.0

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

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

docker service ps mygoweb

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

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

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

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

標(biāo)簽:瀘州 玉樹(shù) 廈門(mén) 江門(mén) 泰安 江西 湖北 內(nèi)江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Docker Stack 部署web集群的方法步驟》,本文關(guān)鍵詞  Docker,Stack,部署,web,集群,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Docker Stack 部署web集群的方法步驟》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Docker Stack 部署web集群的方法步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    抚宁县| 江西省| 新津县| 屏南县| 西青区| 金昌市| 德惠市| 抚远县| 兰考县| 遂川县| 石棉县| 砚山县| 保亭| 措勤县| 许昌县| 克东县| 广东省| 佛冈县| 临洮县| 安化县| 崇阳县| 禄丰县| 隆尧县| 重庆市| 佛教| 巴彦淖尔市| 英吉沙县| 东莞市| 吉安县| 大洼县| 余姚市| 色达县| 从化市| 夹江县| 樟树市| 洛浦县| 汕头市| 安庆市| 恭城| 澄城县| 平和县|