Hi,小夥伴們。繼上期分享瞭如何用Docker部署本身的第一個SpringBoot應用以後,愛折騰的Storm仍是耐不住性子,又折騰了一下SpringCloud應用的部署。在不使用Docker部署的時候呢,在本地模擬搭建一個高可用的Eureka集羣是至關簡單的。可是使用Docker部署的時候遇到了節點沒法通訊的問題,折騰半天終於完美解決這個問題,以此記錄一下。git
在項目中,我使用的是域名來區分不一樣的Eureka服務,本地Host綁定這些域名解析爲127.0.0.1 可是部署到容易當中的時候就沒法進行通訊了,所以須要使用其餘方法來創建通訊。更改配置,使用ip並非個人意圖,雖然在實際生產環境是能夠的,可是硬編碼的風格顯然不是最好的方案。github
通過資料的收集和整理,發現docker-compose可以解決這個問題,它可以自定義編排要發佈的容易,包括容器依賴和通訊而且統一部署。所以我在此使用它來解決上述的部署問題。docker
首先咱們須要構建Eureka服務,使用不一樣的端口,具體源碼見個人開源項目網絡
咱們須要在項目根目錄下新建一個docker文件夾,用於存儲Docker部署相關的文件,在此文件夾下新建一個docker-compose.yml文件,內容以下分佈式
version: "2.1"
services:
eureka-server-01:
image: eureka-server-01
hostname: eureka-server-01
networks:
- eureka-net
ports:
- "1001:1001"
eureka-server-02:
image: eureka-server-02
hostname: eureka-server-02
networks:
- eureka-net
ports:
- "1002:1002"
eureka-server-03:
image: eureka-server-03
hostname: eureka-server-03
networks:
- eureka-net
ports:
- "1003:1003"
複製代碼
這裏的配置主要是編排咱們將要發佈的三個容器基本信息,包括容器的名稱,鏡像名稱,host名稱,端口等等。這樣咱們統一發布這些應用,應用之間就能夠相互通訊了,而不是網絡隔離的狀態。ide
最後咱們在idea中運行這個文件,不出意外的話,咱們就能夠看到三個容器正常部署而且輸出打印日誌。一樣的,訪問http://eureka-server-01:1001/eureka/ 查看是否有掛載3個節點,而且都處於正常狀態。到這裏高可用Eureka高可用服務註冊與發現中心得Docker部署搭建就完成啦,這個也是一樣能夠用於Feign等Eureka客戶端的部署使用過程中的,你們能夠自行嘗試。個人項目當中已經爲你們準備好了Demo,能夠自行查看。咱們下期見吧。編碼