1. 程式人生 > >docker swarm 和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

docker swarm 和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

一 docker 版本1.13及以上,compose版本1.11及以上。docker的搭建和執行compose參考官方文件完成

二  docker swarm 和compose 簡介

Docker宣佈在1.12版的引擎中內建編排能力,也就是 Swarm Mode,在容器之上引入了服務(service)的概念,也實驗性的推出了應用棧(stack)來支援多服務應用的部署管理。但是 Docker 1.12 版本,服務的開發和操作缺乏類似Docker Compose工具的支援,而且由於Docker Compose v1/v2是面向容器編排設計,和Swarm Mode中的概念上有很多不同。只可以用 docker-compose bundle

 命令將已有 docker-compose.yml 轉換為 Distributed Application Bundle 才能在Swarm mode中部署,非常不便,而且更為嚴重的是很多功能不支援,導致很多現有編排模板無法直接使用。

在2017年1月釋出的 Docker 1.13版本中,Swarm mode迅速成熟,相應的工具支援也進一步完善。 Docker Compose v3 規範,已經全面支援 Swarm mode 概念。而且從 1.13 開始,Docker 命令列工具支援直接使用 v3 版本的 docker-compose.yml 檔案來進行應用棧(stack)部署管理,這大大簡化了容器編排使用的複雜性。

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
三 案例一

本案例中,使用docker  swarm叢集,用compose檔案來生成容器,並通過compose檔案中的定義來確定容器具體在哪個主機生成,適合測試環境

具體的引數,看最後面的解釋

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
此處不多說,直接帖compse檔案

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

建立容器

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
檢視網路網橋

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
檢視容器所在的主機位置
docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
刪除所有的容器

docker  stack  rm   bz

四 案例二

試驗環境(docker swarm 搭建參考官網)此種方法適合用在線上
docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
compose檔案

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
生成容器

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)

確定容器的位置

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
驗證swarm的高可用,直接把主節點
docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
可以看到test1 位主節點,上面有2個容器 tomcat1 和nginx

停掉test1,來test2 上面看效果

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
可以看到test3成為主節點。我們在來看tomcat1和nginx

docker <wbr>swarm <wbr>和compose部署服務,解決跨主機網路問題和ip不固定問題(二)
replicas:定義 replicated 模式的服務的複本數量

placement:定義服務容器的部署放置約束條件
docker swarm 自帶負載均衡功能,可以直接使用 docker service scale 服務名=n 來直接生成

參考文件: