SpringCloud分散式微服務b2b2c電子商務-docker部署spring cloud專案(十一)
一、docker簡介
Docker是一個開源的引擎,可以輕鬆的為任何應用建立一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上
編譯測試透過的容器可以批次地在生產環境中部署,包括VMs(虛擬機器)、bare metal、OpenStack 叢集和其他的基礎
應用平臺。
Docker通常用於如下場景:
web應用的自動化打包和釋出;
自動化測試和持續整合、釋出;
在服務型環境中部署和調整資料庫或其他的後臺應用;
從頭編譯或者擴充套件現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
Docker 的優點
1、簡化程式:
Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,便可以
實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是
Docker的最大優勢,過去需要用數天乃至數週的 任務,瞭解springcloud架構可以加求求:三五三六二四七二五九,在
Docker容器的處理下,只需要數秒就能完成。
2、避免選擇恐懼症:
如果你有選擇恐懼症,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 映象;Docker 映象中包含了執行環境和
配置,所以 Docker 可以簡化部署多種應用例項工作。比如 Web 應用、後臺應用、資料庫應用、大資料應用比如 Hadoop
叢集、訊息佇列等等都可以打包成一個映象部署。
3、節省開支:
一方面,雲端計算時代到來,使開發者不必為了追求效果而配置高額的硬體,Docker 改變了高效能必然高價格的思維定勢。
Docker 與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬體管理的問題,也改變了虛擬化的方式。
上面文字參考了相關文章;另,關於docker 的安裝和基本的使用見相關教程。
二、準備工作
環境條件:
linux系統,不建議windows
docker最新版本
jdk 1.8
maven3.0
本文采用的工程來自第一篇文章的工程,採用maven的方式去構建專案,並採用docker-maven-plugin去構建docker映象。
三、改造工程、構建映象
改造eureka-server工程
在pom檔案加上外掛:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- tag::plugin[] --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.3</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> <!-- end::plugin[] --> </plugins> </build>
Spotify 的 docker-maven-plugin 外掛是用maven外掛方式構建docker映象的。
imageName指定了映象的名字,本例為 forep/eureka-server
dockerDirectory指定 Dockerfile 的位置
resources是指那些需要和 Dockerfile 放在一起,在構建映象時使用的檔案,一般應用 jar 包需要納入。
修改下配置檔案:
server: port: 8761 eureka: instance: prefer-ip-address: true client: registerWithEureka: false fetchRegistry: false<br>
編寫dockerfile檔案:
FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar #RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 8761
docker file編寫指令:
FROM
docker file編寫指令: FROM
FROM指令必須指定且需要在Dockerfile其他指令的前面,指定的基礎image可以是官方遠端倉庫中的,也可以位於
本地倉庫。後續的指令都依賴於該指令指定的image。當在同一個Dockerfile中建立多個映象時,可以使用多個FROM
指令。
VOLUME
格式為:
VOLUME ["/data"]
使容器中的一個目錄具有持久化儲存資料的功能,該目錄可以被容器本身使用,也可以共享給其他容器。當容器中的應用有
持久化資料的需求時可以在Dockerfile中使用該指令。
ADD
從src目錄複製檔案到容器的dest。其中src可以是Dockerfile所在目錄的相對路徑,也可以是一個URL,還可以是一個壓縮包
ENTRYPOINT
指定Docker容器啟動時執行的命令,可以多次設定,但是隻有最後一個有效。
EXPOSE
為Docker容器設定對外的埠號。在啟動時,可以使用-p選項或者-P選項。
構建映象
執行構建docker映象maven命令:
mvn clean mvn package docker:build
eureka: client: serviceUrl: defaultZone: 這個需要改為eureka-server server: port: 8763 spring: application: name: service-hi
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952307/viewspace-2670972/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 十一、Docker搭建部署SpringCloud微服務專案DemoDockerSpringGCCloud微服務
- SpringCloud分散式微服務b2b2c電子商務分散式微服務-docker-feign-hystrix(七)SpringGCCloud分散式微服務Docker
- Springcloud分散式微服務b2b2c電子商務一Spring Cloud常見問題(一)SpringGCCloud分散式微服務
- JAVA spring cloud boot b2b2c電子商務分散式微服務JavaSpringCloudboot分散式微服務
- java版電子商務spring cloud分散式微服務-大話Spring CloudJavaSpringCloud分散式微服務
- SpringCloud分散式微服務b2b2c電子商務-Spring Boot配置檔案詳解GCCloud分散式微服務Spring Boot
- SpringCloud分散式微服務b2b2c電子商務-Spring Cloud自定義引導屬性源SpringGCCloud分散式微服務
- (十四)JAVA springboot微服務b2b2c電子商務系統- Spring Cloud構建分散式電子商務平臺JavaSpring Boot微服務Cloud分散式
- SpringCloud分散式微服務b2b2c電子商務docker-feign配置(六)SpringGCCloud分散式微服務Docker
- JAVA b2b2c電子商務SpringCloud分散式微服務spring-security-基本JavaSpringGCCloud分散式微服務
- SpringCloud分散式微服務b2b2c電子商務docker-feign-hystrix-ribbon(八)SpringGCCloud分散式微服務Docker
- java b2b2c電子商務 springcloud分散式微服務-Session共享JavaSpringGCCloud分散式微服務Session
- SpringCloud分散式微服務b2b2c電子商務-SpringBoot 整合JPA(四)GCCloud分散式微服務Spring Boot
- SpringCloud分散式微服務b2b2c電子商務(十三)Springboot整合RabbitMQGCCloud分散式微服務Spring BootMQ
- SpringCloud分散式微服務b2b2c電子商務(五)springboot整合 beatlsqlGCCloud分散式微服務Spring BootTLSSQL
- SpringCloud分散式微服務b2b2c電子商務-定時任務(Scheduling Tasks)SpringGCCloud分散式微服務
- spring cloud構建網際網路分散式微服務雲平臺-docker部署spring cloud專案SpringCloud分散式微服務Docker
- SpringCloud分散式微服務b2b2c電子商務-Gateway的基本入門SpringGCCloud分散式微服務Gateway
- Springcloud分散式微服務b2b2c電子商務一整合Hystrix(二)SpringGCCloud分散式微服務
- spring cloud微服務分散式雲架構 - Spring Cloud整合專案簡介SpringCloud微服務分散式架構
- java版電子商務spring cloud分散式微服務b2b2c-Spring Cloud TaskJavaSpringCloud分散式微服務
- JAVA springboot微服務b2b2c電子商務系統-(七)高可用的分散式配置中心(Spring Cloud Config)JavaSpring Boot微服務分散式Cloud
- spring cloud + mybatis 分散式 微服務 b2b2c 多商戶商城 全球部署方案SpringCloudMyBatis分散式微服務
- SpringCloud分散式微服務b2b2c電子商務(一)元件和概念介紹SpringGCCloud分散式微服務元件
- SpringCloud分散式微服務b2b2c電子商務-hystrix引數詳解(十)SpringGCCloud分散式微服務
- (三)spring cloud微服務分散式雲架構 - Spring Cloud整合專案簡介SpringCloud微服務分散式架構
- SpringCloud分散式微服務b2b2c電子商務(三)註冊中心叢集篇SpringGCCloud分散式微服務
- Spring Cloud微服務分散式雲架構—整合專案簡介SpringCloud微服務分散式架構
- spring cloud spring boot 構建java版 分散式微服務 b2b2c o2o電子商務雲商平臺CloudSpring BootJava分散式微服務
- java版 電子商務Springcloud分散式微服務多使用者商城系統-Springboot專案打包JavaGCCloud分散式微服務Spring Boot
- springboot直播帶貨spring cloud分散式微服務b2b2c社交電商Spring BootCloud分散式微服務
- java版b2b2c社交電商spring cloud分散式微服務-服務提供與呼叫JavaSpringCloud分散式微服務
- Java b2b2c電子商務 SpringCloud分散式微服務-config的簡單配置shh方式JavaSpringGCCloud分散式微服務
- (十六)spring cloud微服務分散式雲架構-整合專案簡介SpringCloud微服務分散式架構
- Spring Cloud構建分散式電子商務平臺:服務消費(基礎)SpringCloud分散式
- spring cloud微服務分散式雲架構Spring Cloud ZuulSpringCloud微服務分散式架構Zuul
- spring cloud微服務分散式雲架構-Spring Cloud NetflixSpringCloud微服務分散式架構
- spring cloud微服務分散式雲架構-Spring Cloud BusSpringCloud微服務分散式架構