百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> Docker Stack 部署web集群的要领步骤
分享文章到:

Docker Stack 部署web集群的要领步骤

发布时间:05/13 来源:未知 浏览: 关键词:

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

以上就是本文的全部内容,但愿对大家的学习有所帮忙,也但愿大家多多支撑脚本之家。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有155人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板