校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Docker Stack 部署web集群的方法步驟

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

熱門標簽:菏澤crm外呼系統價格 遼寧電銷平臺外呼系統軟件 信陽銷售外呼系統招商 物超所值的400電話申請 如何在各種地圖標注自己的地址 coreldraw地圖標注 百應電銷機器人靠譜嗎 申請400電話號碼多少錢 營銷電銷機器人招商

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

環境

我是用了兩臺centos7的虛擬機來做這個教程他們的ip分別是

主服務器:192.168.0.105 // 也是私有倉庫服務器
服務器2: 192.168.0.49

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

設置Docker Swarm

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

docker swarm init

執行命令后會給出加入這個swarm的命令

在192.168.0.49上執行命令加入swarm

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

這樣我們就建好了swarm,兩臺主機現在建立好了關系。

web服務

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

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文件:

執行的意思就是基于golang境像,把代碼復制到相應文件夾,暴露出端口,運行程序。簡單吧

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 build命令:

docker build . -t goweb:1.0

你可以運行一下新生成的鏡像

docker run -p 8100:8000 7a7e3

鏡像提交到私有倉庫

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

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

因為集群的上機器是自動從倉庫取鏡像然后再運行程序,所以需要將我們上面生成的鏡像推送到我們的私有倉庫上去。我自己搭建的

使用tag重新命名

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

推送

docker push lpxxn.com:5000/goweb:1.0

docker-compose文件

接下來創建docker-compose.yml文件

image就是我們上面創建好的鏡像。運行5個應用程序,docker會自己做負載,端口映射8111,失敗時自動重啟服務,并且創建了自己的網絡,當有多個server服務時這個非常有用。

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

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:

部署應用

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

docker stack deploy -c docker-compose.yml mygoweb

查看啟動的服務

docker service ps mygoweb

測試服務

看這些返回的主機名:不一樣吧。docker為我們做了負載了。

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:瀘州 玉樹 廈門 江門 泰安 江西 湖北 內江

巨人網絡通訊聲明:本文標題《Docker Stack 部署web集群的方法步驟》,本文關鍵詞  Docker,Stack,部署,web,集群,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Docker Stack 部署web集群的方法步驟》相關的同類信息!
  • 本頁收集關于Docker Stack 部署web集群的方法步驟的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 三门峡市| 昭苏县| 逊克县| 崇信县| 大洼县| 眉山市| 西乌珠穆沁旗| 云和县| 马关县| 南岸区| 昭苏县| 彭州市| 金昌市| 年辖:市辖区| 三亚市| 怀安县| 泽普县| 阳信县| 巴林右旗| 铜梁县| 上饶市| 班戈县| 昌乐县| 柘城县| 宜州市| 临西县| 西乌| 封开县| 周口市| 开封市| 宁德市| 彰武县| 湾仔区| 华安县| 蚌埠市| 惠安县| 满洲里市| 旅游| 五常市| 宣城市| 石嘴山市|