十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如何用docker swarm 实现集群,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司是一家专注于成都网站建设、网站制作与策划设计,黔江网站建设哪家好?创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:黔江等地区。黔江做网站价格咨询:028-86922220
(1) go 编写 web 程序
主要实现 监听 ip:9090/Source 浏览,并记录 服务器主机与访问次数。
代码
package main import ( "fmt" "log" "net/http" "runtime" "strconv" "os" ) var i int = 0 func sayHello(w http.ResponseWriter, r *http.Request){ //func sayHello(){ i++ fmt.Print(i) fmt.Print("\n") fmt.Print("visit!"+"\n") hostname,er :=os.Hostname() if er == nil { dates := "jenkins:"+"Login \n"+"visit Count:"+strconv.Itoa(i)+"\nHostname:"+hostname w.Write([]byte(dates)) defer r.Body.Close() }else { return } } func main(){ fmt.Print("<<<<< "+runtime.GOOS+"\n") fmt.Print("<<<<< "+runtime.GOARCH+"\n") http.HandleFunc("/Source",sayHello) fmt.Print("<<< debug start"+"\n") er := http.ListenAndServe(":9090",nil) fmt.Print("<<< debug end") fmt.Print(er) if er != nil { log.Fatal("ListenAndServe",er) } }
(2) 生成arch 程序
go build arch.go
(3) arch + Dockerfile 生成微服务镜像
Dockerfile
FROM ubuntu:16.04 MAINTAINER ZHB COPY ./arch / RUN chmod 777 /arch RUN touch /log.txt EXPOSE 9090 ENTRYPOINT ["sh","-c","./arch >> /log.txt"] #可在 容器里 tail -f log.txt 监控
docker build -t ip:5000/swarm:0.0 ./
ubuntu@local:~/SWARM$ docker build -t 192.168.175.139:5000/swarm:0.0 ./ Sending build context to Docker daemon 6.629MB #Sending build context 可以用.dockerignore 阻止 Step 1/7 : FROM ubuntu:16.04 ---> a51debf7e1eb Step 2/7 : MAINTAINER ZHB ---> Using cache ---> 26b542a8286b Step 3/7 : COPY ./arch / ---> Using cache ---> aff0b358480c Step 4/7 : RUN chmod 777 /arch ---> Using cache ---> 6e07a223b571 Step 5/7 : RUN touch /log.txt ---> Using cache ---> 03be86c93b8a Step 6/7 : EXPOSE 9090 ---> Using cache ---> fe9c6a7ab542 Step 7/7 : ENTRYPOINT ["sh","-c","./arch >> /log.txt"] ---> Using cache ---> 6287178e0005 Successfully built 6287178e0005 Successfully tagged 192.168.175.139:5000/swarm:0.0
push 镜像
docker push ip:5000/swarm:0.0
(4)主节点 swarm init
docker swarm init
其他服务器加入集群
docker swarm join --token **** ip:2377
(5)创建service
docker service create --replicas 6 --name=swarm-service --publish 9090:9090 IP:5000/swarm:0.0
overall progress: 0 out of 6 tasks 1/6: preparing [=================================> ] 2/6: preparing [=================================> ] 3/6: preparing [=================================> ] 4/6: preparing [=================================> ] 5/6: preparing [=================================> ] 6/6: preparing [=================================> ]
(6) web 访问 ip:9090/Source 并实现负载均衡
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。