將spring cloud打包docker鏡像


簡介:用spring cloud構建微服務后,微服務肯定要docker鏡像化然后用rancher等可視化工具管理,這就是走完了一套基本的流程,現在簡單介紹下

環境:兩台centos7.x的服務器,一台本地window10

        一個spring cloud的eureka的注冊中心,

        一個spring cloud的普通服務,注冊到eureka

前提:首先你的spring cloud注冊中心和普通服務要能本地運行,百度一搜到處都是資料,這里我就不細講了,現在我們要把spring cloud部署到服務器上面

步驟:1.修改注冊中心項目配置文件

spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=IP1  //注冊中心所在服務器IP
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://IP1:1111/eureka/   //這里注意加上http://

           修改普通服務配置文件    

spring.application.name=api-gateway
server.port=5555
eureka.instance.hostname=IP2   //普通服務所在服務器IP
eureka.client.serviceUrl.defaultZone=http://IP1:1111/eureka/   //這里注意加上http://

然后我們打包jar,這里有兩種打包方式,一種是運行編譯后的java文件,一種是打包jar,我們選擇的是打包jar包,進入項目的根目錄,按住shift右擊鼠標,點擊在此處打開窗口,輸入mvn install package(需要是maven項目,官網下載的spring boot初始項目自己配置了),完成后進去target目錄找到jar包,現在我們直接在服務器上面運行java -jar jar-name是可以的,訪問項目地址測試成功,繼續將jar包封裝成docker image,這個時候我們需要在jar包的同一目錄新建一個Dockerfile(必須是這個名稱)文件

 

Dockerfile內容:

# 基於哪個鏡像
FROM java:8

# 將本地文件夾掛載到當前容器
VOLUME /home/container

# 拷貝文件到容器,也可以直接寫成ADD eureka-server-0.0.1-SNAPSHOT.jar /app.jar
# 這個地方jar包名稱改成自己的jar名稱
ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'

# 開放1111端口
EXPOSE 1111

# 配置容器啟動后執行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

實際就是執行的linux命令,容器有自己一套獨立的環境,實現了環境的隔離,后面不管在什么環境下,我們pull下這個鏡像就可以直接運行

然后打包鏡像 docker build -t eureka-server .   //eureka-server是鏡像名稱可以自己定,最后的一個.不要省略了,他是用來找到Dockerfile文件的,不然會打包不成功的

打包完成后運行docker images查看鏡像,發現有我們的eureka-server鏡像了

將鏡像運行在容器中:docker run -d -p 1111:1111 eureka-server  //-d 表示后台運行,-p是端口映射

成功后查看正在運行容器: docker ps 發現eureka-server已經運行起來,訪問http://IP1:1111就出現了我們熟悉的注冊中心的界面了,bingo

普通服務是一樣的,放在另一台服務器上面(當然也可以放在同一台服務器上面的),啟動成功我們就在注冊中心頁面看到api-gate這個服務已經注冊進來了

這樣我們就實現了基本的spring cloud的docker化,當然如果你會打包docker鏡像了就會發現每次都要打包很煩很煩,需求驅動你需要做持續集成了,還有界面化的管理等等


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM