天天看點

docker-swarm叢集部署應用

Nginx部署嘗試

參考:https://blog.csdn.net/weixin_33825683/article/details/92978381

使用Docker Machine搭建Docker Swarm叢集并部署nginx服務

或者先登入管理節點機器,然後再操作。

docker-machine ssh swarmMng
docker service create --replicas 3 --name web_nginx -p 80:80 nginx 
docker service  ps web_nginx 
[email protected]:~$ docker service ps  web_nginx                                
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE                ERROR               PORTS
g007nfyckil4        web_nginx.1         nginx:latest        swarmNd2            Running             Running 49 seconds ago                           
mxw31vgrsye0        web_nginx.2         nginx:latest        swarmMng            Running             Running about a minute ago                       
b7jt15nfg1l8        web_nginx.3         nginx:latest        swarmNd1            Running             Running about a minute ago                       
[email protected]:~$      

           

在Docker-machine安裝的機器上通路http://192.168.99.104/才能有界面,在Windows實體機上通路不到。估計是網絡配置,需要再研究。

—解決辦法:在Docker-machine安裝的機器安裝Nginx,然後配置反向代理到Swarm叢集中的機器。Docker-machine建立虛拟機的IP動态的配置到主Nginx上,但是主Nginx機器存在性能瓶頸。這個需要再研究高可用和高性能的架構方案。

SpringBoot部署設計

一、采用通用鏡像然後再往鏡像上部署包。

docker pull openjdk 直接用docker-machine建立

如何編寫挂載位置?

如何運作一個Shell腳本

-----【可以直接寫在docker 的CMD指令中】是否最優方案????

以上方案違背了鏡像的理念?????????

二、将環境和代碼部署好之後,打包成一個鏡像然後再部署。代碼更新對應鏡像更新,代碼和環境不分開部署。--------認為可取。

關鍵編寫一個DockerFile,将代碼環境一起寫進去。

參考文章:

docker叢集——swarm、docker-machine一鍵部署

"三劍客”之Swarm探索應用叢集服務釋出