您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Docker Stack如何部署web集群”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Docker Stack如何部署web集群”這篇文章吧。
環境
我是用了兩臺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為我們做了負載了。
以上是“Docker Stack如何部署web集群”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。