1. 程式人生 > >Spring cloud 微服務docker容器化最佳實踐

Spring cloud 微服務docker容器化最佳實踐

Spring cloud 是當下最炙手可熱的微服務套件,我們將介紹如何整合Docker容器達到高效快捷的構建釋出
採用了dockerfile-maven-plugin外掛釋出映象到遠端docker主機,該部分詳細教程請看 使用Maven外掛快捷打包釋出遠端Docker映象

新增docker外掛依賴

# 可以直接在父工程pom內新增外掛,各子專案將自動繼承外掛依賴
<build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId
>
<artifactId>dockerfile-maven-plugin</artifactId> <version>1.4.0</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs
>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> </build>

新增Dockerfile檔案

需要為各需要釋出為docker映象的服務專案在其根目錄新增Dockerfile檔案

# dockerfile 基礎配置
FROM daocloud.io/library/java:8u40-b22 VOLUME /tmp ARG JAR_FILE ADD ${JAR_FILE} /app/app.jar WORKDIR /app/ # 該映象需要暴露的介面 EXPOSE 8889 ENTRYPOINT ["java","-jar","./app.jar"]

執行釋出映象

mvn clean package dockerfile:build -DskipTests

這裡寫圖片描述
可以看到微服務中的各服務專案都被已經被髮布到了遠端docker映象

執行

將各服務都跑起來

docker run -d -p 8889:8889 --name hnister-eureka-server hnister/hnister-eureka-server

但現在還有一個問題就是如何引入mysql等元件到docker中呢

資料庫等服務的引入

容器間網路互通

現在各映象已經構建完畢,如何讓各容器相互訪問呢,以前docker採用link的方式,但這種方式已經不被推薦了。
我們可以採用network來方便快捷的達成我們所期望的效果;

建立一個新的network

建立新network

docker network  create hnister

這裡寫圖片描述
network被建立成功,在執行容器時指定network

# 通過--network 結合 --network-alias 指定網路
docker run -d -p 8889:8889 --name hnister-eureka-server --network hnister hnister/hnister-eureka-server
docker run -d -p 8889:8889 --name hnister-mysql --network hnister --network-alias mysql.hnister.cn mysql

對已經執行的容器連結到network,而其他服務在加入了該network後可以通過alias來訪問主機如連結到資料庫mysql

jdbc:mysql://mysql.hnister.cn/hnister

對於已經啟動的容器可以使用命令來加入自建network

docker network connect hnister hnister-eureka-server

這樣所有的容器就都在一個network內了可以相互訪問

相關推薦

Spring cloud 服務docker容器最佳實踐

Spring cloud 是當下最炙手可熱的微服務套件,我們將介紹如何整合Docker容器達到高效快捷的構建釋出 採用了dockerfile-maven-plugin外掛釋出映象到遠端docker主機,該部分詳細教程請看 使用Maven外掛快捷打包

spring eureka叢集+spring boot 服務容器部署示例

1.搭建eureka docker叢集 (1)建立eureka容器 參考如下指令,在不同的伺服器上建立eureka容器。(提前在docker hup 上下載好java:8的映象) docker run -d --name registry1 -p 8762:808

Spring Cloud 服務架構全鏈路實踐

閱讀目錄: 1. 閘道器請求流程 2. Eureka 服務治理 3. Config 配置中心 4. Hystrix 監控 5. 服務呼叫鏈路 6. ELK 日誌鏈路 7. 統一格式返回 目前公司使用的 Spring Cloud 整個技術元件,基本包含了上面圖中所包含的,不得不說,Spring Clou

spring cloud】【docker】使用docker在centOS上部署spring cloud服務架構服務

部署過程:   1.首先修改centOS的hosts檔案 vi /etc/hosts 增加以下內容 127.0.0.1 centos7 192.168.92.130 centos7     2.修改本機hosts檔案   路徑如

Docker部署Spring cloud服務詳細講解 (一)

一、為什麼要使用Docker部署Spring Cloud專案        說目前最流行的java開發方式就是Spring Boot和Spring Cloud應該不為過。Spring Boot進一步加強了“約定大於配置”這一Spring的中心思想,使得我們開發人員能夠更快捷,

服務容器Docker

src inf com 鏡像 http docke eight .com 技術分享 1、Docker的應用案例 2、 3、 4、docker的核心:鏡像、倉庫、容器 Build構建鏡像:類似於集裝箱。 Ship運輸鏡像,倉庫:類似於碼頭。將鏡像運輸到倉庫。 R

Spring cloud 服務架構 Eureka篇

ring enabled 密碼 config lns 用戶 one ima nap 1 服務發現 ## 關於服務發現 在微服務架構中,服務發現(Service Discovery)是關鍵原則之一。手動配置每個客戶端或某種形式的約定是很難做的,並且很脆弱。Sprin

spring cloud服務架構 服務提供者和服務消費者

服務 lee 名詞 mave into gin tag bigint snap 服務提供者和服務消費者 下面這張表格,簡單描述了服務提供者/消費者是什麽: | 名詞 | 概念 | | ----- | ---------

spring cloud 服務架構 簡介

session 進行 tell div apach 後來 tro 最新版 maven Spring Cloud 1、 Spring Cloud 簡介 Spring Cloud是在Spring Boot的基礎上構建的,用於簡化分布式系統構建的工具集,為開發人員提供快

spring cloud服務分布式雲架構 - 整合企業架構的技術點

mon 搭建過程 微服務 cloud ref hadoop htm title lis spring cloud本身提供的組件就很多,但我們需要按照企業的業務模式來定制企業所需要的通用架構,那我們現在需要考慮使用哪些技術呢? 下面我針對於spring cloud微服務分布式

spring cloud服務分布式雲架構 - 集成項目簡介

spring springboot springcloud spring cloud config spring cloud bus Spring Cloud集成項目有很多,下面我們列舉一下和Spring Cloud相關的優秀項目.Spring Cloud Config配置管理工具包,讓你

spring cloud服務分布式雲架構-整合企業架構的技術點

oop title ger reac 架構 hadoop ras lan 框架 spring cloud本身提供的組件就很多,但我們需要按照企業的業務模式來定制企業所需要的通用架構,那我們現在需要考慮使用哪些技術呢? 下面我針對於spring cloud微服務分布式雲架構做

spring cloud服務分布式雲架構集成項目簡介

bsp 微服務 arc auth 運用 urb 通過 網站後端 配置管理工具 Spring Cloud集成項目有很多,下面我們列舉一下和Spring Cloud相關的優秀項目,我們的企業架構中用到了很多的優秀項目,說白了,也是站在巨人的肩膀上去整合的。在學習Spring C

分享Spring Cloud服務雲架構代碼結構圖

sof blog targe 探討 target 技術分享 資料 ava 集成 源碼結構 JAVA開發、maven模塊化構建、服務獨立打包、分布式部署、持續集成、版本控制 從現在開始,我這邊會將近期研發的spring cloud微服務雲架構的搭建過程和精髓記錄下來,幫助更

Spring Cloud服務分布式雲架構企業的技術點整合

hadoop fig har charts god sql ger 過程 一個 spring cloud本身提供的組件就很多,但我們需要按照企業的業務模式來定制企業所需要的通用架構,那我們現在需要考慮使用哪些技術呢? 下面我針對於spring cloud微服務分布式雲架構做

Spring Cloud服務雲架構代碼結構

分布式部署 lan wid 朋友 ext style src min sof 源碼結構 JAVA開發、maven模塊化構建、服務獨立打包、分布式部署、持續集成、版本控制 從現在開始,我這邊會將近期研發的springcloud微服務雲架構的搭建過程和精髓記錄下來,幫助更

介紹Spring Cloud服務架構

chm 軟件代理 前端 企業 封裝 load 用戶 業務 根據 Spring Cloud作為一套微服務治理的框架,幾乎考慮到了微服務治理的方方面面,之前也寫過一些關於Spring Cloud文章,主要偏重各組件的使用,本次分享主要解答這兩個問題:Spring Cloud在微

Spring Cloud服務分布式雲架構技術點

spring boot spring cloud本身提供的組件就很多,但我們需要按照企業的業務模式來定制企業所需要的通用架構,那我們現在需要考慮使用哪些技術呢?下面我針對於spring cloud微服務分布式雲架構做了以下技術總結,希望可以幫助到大家:View: H5、Vue.js、Spring Ta

關於Spring Cloud服務架構

spring boot 微服務架構Spring Cloud解決的第一個問題就是:服務與服務之間的解耦。很多公司在業務高速發展的時候,服務組件也會相應的不斷增加。服務和服務之間有著復雜的相互調用關系,經常有服務A調用服務B,服務B調用服務C和服務D ...,隨著服務化組件的不斷增多,服務之間的調用關系成

Spring Cloud服務架構—服務註冊與發現

開源 查看 zookeeper rest 探討 ken 並且 tin services Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理