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 swarm叢集,用compose檔案來生成容器,並通過compose檔案中的定義來確定容器具體在哪個主機生成,適合測試環境
具體的引數,看最後面的解釋
docker stack rm bz
四 案例二
試驗環境(docker swarm 搭建參考官網)此種方法適合用在線上
compose檔案
驗證swarm的高可用,直接把主節點
可以看到test1 位主節點,上面有2個容器 tomcat1 和nginx
停掉test1,來test2 上面看效果
可以看到test3成為主節點。我們在來看tomcat1和nginx
replicas:定義 replicated
模式的服務的複本數量
placement
:定義服務容器的部署放置約束條件
docker swarm 自帶負載均衡功能,可以直接使用 docker service scale 服務名=n 來直接生成
參考文件: