摘要:第篇中用部署一個(gè)簡單的基于服務(wù)治理發(fā)現(xiàn)的項(xiàng)目一大致介紹糾結(jié)了一下下,這么簡單的部署流程是否需要詳細(xì)的貼出來,然而糾結(jié)了一下還是將這個(gè)簡單的部署流程補(bǔ)充完整了經(jīng)過上節(jié)的講解,相信大家已經(jīng)對的命令操作都有了一定的了解,這里我就暫且默認(rèn)大家都擁
SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一個(gè)簡單的基于 Eureka 服務(wù)治理發(fā)現(xiàn)的項(xiàng)目
-
一、大致介紹1、糾結(jié)了一下下,這么簡單的部署流程是否需要詳細(xì)的貼出來,然而糾結(jié)了一下還是將這個(gè)簡單的部署流程補(bǔ)充完整了; 2、經(jīng)過上節(jié)的講解,相信大家已經(jīng)對docker的命令操作都有了一定的了解,這里我就暫且默認(rèn)大家都擁有了可操作的環(huán)境以及了解操作指令; 3、本章節(jié)基于docker來操作部署SpringCloud項(xiàng)目; 4、注意在利用idea打包生成jar文件時(shí),里面的localhost請改成你的宿主機(jī)的ip地址,但是如果統(tǒng)一部署到測試或者生產(chǎn)環(huán)境的話,請改為動(dòng)態(tài)配置,方便動(dòng)態(tài)修改,因此我這里做測試的話,首先將代碼中的localhost就直接改成宿主機(jī)的ip地址,然后再打出jar包;二、針對簡單用戶微服務(wù)進(jìn)行docker部署 2.1 利用 idea 對 springms-simple-provider-user 項(xiàng)目進(jìn)行打包
1、這個(gè)打包就看大家喜好,用命令打包也好,用鼠標(biāo)操作打包也好,反正目的就是在項(xiàng)目的target目錄下生成jar文件即可; 2、本人這里使用ideaIDE開發(fā)工具,就沿著 Maven Project -> springms-simple-provider-user -> Lifecycle -> package 路徑雙擊 package 即可; 3、然后就會(huì)看到項(xiàng)目中 springms-simple-provider-user/target 下多了一個(gè) springms-simple-provider-user-1.0-SNAPSHOT.jar 文件;2.2 上傳 springms-simple-provider-user-1.0-SNAPSHOT.jar 至 linux 服務(wù)器
1、本人在Linux下喜歡操作命令,所以這里就給大家演示一下怎么用SecureCRT執(zhí)行命令將文件傳到服務(wù)器; 2、首先登錄上服務(wù)器就不用說了,然后在SecureCRT中操作 “alt+p” 快捷鍵操作,此時(shí)將會(huì)打開一個(gè)新的頁簽,頁簽的第一行則是 “sftp>” 這個(gè)字樣,說明已經(jīng)進(jìn)入了上傳文件的命令窗口了; 3、找到需要將文件放置到服務(wù)器的位置; sftp> cd /home/docker/demo sftp> put D:ANDROIDCodeSpring-CloudSpringCloudTutorialspringms-simple-provider-user argetspringms-simple-provider-user-1.0-SNAPSHOT.jar Uploading springms-simple-provider-user-1.0-SNAPSHOT.jar to /home/docker/demo/springms-simple-provider-user-1.0-SNAPSHOT.jar 100% 31995KB 1333KB/s 00:00:24 D:/ANDROID/Code/Spring-Cloud/SpringCloudTutorial/springms-simple-provider-user/target/springms-simple-provider-user-1.0-SNAPSHOT.jar: 32763475 bytes transferred in 24 seconds (1333 KB/s) sftp> 4、然后切換到剛剛敲 “alt+p” 快捷鍵的那個(gè)窗口,執(zhí)行命令查看文件是否上傳成功 [root@svr01 ~]# ls /home/docker/demo springms-simple-provider-user-1.0-SNAPSHOT.jar2.3 編寫并保存 Dockerfile 文件
1、進(jìn)入 /home/docker/demo [root@svr01 ~]# cd /home/docker/demo 2、采用 vim或者vi 命令創(chuàng)建 Dockerfile 文件,并輸入文件內(nèi)容 [root@svr01 demo]# vim Dockerfile FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD springms-simple-provider-user-1.0-SNAPSHOT.jar app.jar RUN sh -c "touch /app.jar" ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] 3、保存 Dockerfile 文件內(nèi)容,執(zhí)行命令順序如下,命令的先后執(zhí)行順序?yàn)椋? Esc Shift+: wq Enter2.4 用 docker build 命令將給定的Dockerfile和上下文以構(gòu)建Docker鏡像
1、構(gòu)建鏡像 [root@svr01 demo]# docker build -t springms-simple-provider-user . Sending build context to Docker daemon 32.77 MB Step 1 : FROM frolvlad/alpine-oraclejdk8:slim ---> 4f03dc990224 Step 2 : VOLUME /tmp ---> Running in dfd09d567767 ---> f76843b950c7 Removing intermediate container dfd09d567767 Step 3 : ADD springms-simple-provider-user-1.0-SNAPSHOT.jar app.jar ---> e009af0cc3bc Removing intermediate container 0884992be7c0 Step 4 : RUN sh -c "touch /app.jar" ---> Running in 4fb67225860f ---> 06320de95ea3 Removing intermediate container 4fb67225860f Step 5 : ENV JAVA_OPTS "" ---> Running in 519c55360fda ---> bb2377cac425 Removing intermediate container 519c55360fda Step 6 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar ---> Running in 95eb606d0e57 ---> 2aaa88be3d65 Removing intermediate container 95eb606d0e57 Successfully built 2aaa88be3d65 2、查看產(chǎn)生的鏡像 [root@svr01 demo]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE springms-simple-provider-user latest 2aaa88be3d65 6 seconds ago 235.6 MB docker.io/centos v2 11efb35f320c 7 hours ago 307.5 MB docker.io/frolvlad/alpine-oraclejdk8 latest 4f03dc990224 12 days ago 170.1 MB frolvlad/alpine-oraclejdk8 slim 4f03dc990224 12 days ago 170.1 MB docker.io/centos latest 3fa822599e10 2 weeks ago 203.5 MB docker.io/hello-world latest f2a91732366c 3 weeks ago 1.848 kB2.5 啟動(dòng)剛剛構(gòu)建好的 docker 鏡像
[root@svr01 demo]# docker run -p 8000:8000 -t springms-simple-provider-user . ____ _ __ _ _ / / ___"_ __ _ _(_)_ __ __ _ ( ( )\___ | "_ | "_| | "_ / _` | / ___)| |_)| | | | | || (_| | ) ) ) ) " |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.4.1.RELEASE) 。。。。 【【【【【【 簡單用戶微服務(wù) 】】】】】】已啟動(dòng).2.6 測試docker部署springcloud項(xiàng)目是否成功
1、還記得我么在電腦本機(jī)測試的地址么,地址為:http://localhost:8000/simple/1 ? 2、現(xiàn)在目前我在阿里云上部署操作,所以這個(gè)localhost我就需要換成阿里云的ip地址,總而言之這個(gè)localhost換成你docker所在服務(wù)器的宿主機(jī)ip地址準(zhǔn)沒錯(cuò);2.7 嘗試停止剛才docker部署的項(xiàng)目
[root@svr01 docker]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3a6393ce51b8 springms-simple-provider-user "sh -c "java $JAVA_OP" 8 minutes ago Up 8 minutes 0.0.0.0:8000->8000/tcp sick_shannon [root@svr01 docker]# docker stop 3a6393ce51b8 3a6393ce51b8 [root@svr01 docker]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3a6393ce51b8 springms-simple-provider-user "sh -c "java $JAVA_OP" 8 minutes ago Exited (137) 3 seconds ago sick_shannon [root@svr01 docker]#2.8 小結(jié)
到此為止,我們已經(jīng)將我們打包好的一個(gè)鏡像成功部署了,并且可以成功在瀏覽器訪問到輸出數(shù)據(jù);三、用docker部署一個(gè)基于Eureka服務(wù)治理發(fā)現(xiàn)的項(xiàng)目 3.1 從 SpringCloudTutorial 中挑選項(xiàng)目
1、springms-discovery-eureka 2、springms-provider-user 3、springms-consumer-movie-feign3.2 依次對剛剛選出來的3個(gè)項(xiàng)目進(jìn)行打包,并產(chǎn)生的文件如下,打包前記得將localhost的記得改為宿主機(jī)ip地址
1、springms-discovery-eureka-1.0-SNAPSHOT.jar 2、springms-provider-user-1.0-SNAPSHOT.jar 3、springms-consumer-movie-feign-1.0-SNAPSHOT.jar3.3 在服務(wù)器上構(gòu)建docker項(xiàng)目目錄
[root@svr01 ~]# cd /home/docker/ [root@svr01 docker]# mkdir -p springms-consumer-movie-feign springms-discovery-eureka springms-provider-user [root@svr01 docker]# ll total 3 drwxr-xr-x 2 root root 76 Dec 15 12:59 demo drwxr-xr-x 2 root root 76 Dec 15 13:44 springms-consumer-movie-feign drwxr-xr-x 2 root root 72 Dec 15 13:09 springms-discovery-eureka drwxr-xr-x 2 root root 69 Dec 15 13:43 springms-provider-user [root@svr01 docker]#3.4 將步驟 3.2 的三個(gè)jar文件按照步驟 2.2 的方式上傳到對應(yīng)服務(wù)器目錄去
sftp> cd /home/docker/springms-discovery-eureka sftp> put D:ANDROIDCodeSpring-CloudSpringCloudTutorialspringms-discovery-eureka argetspringms-discovery-eureka-1.0-SNAPSHOT.jar Uploading springms-discovery-eureka-1.0-SNAPSHOT.jar to /home/docker/springms-discovery-eureka/springms-discovery-eureka-1.0-SNAPSHOT.jar 100% 31595KB 1333KB/s 00:00:24 D:/ANDROID/Code/Spring-Cloud/SpringCloudTutorial/springms-discovery-eureka/target/springms-discovery-eureka-1.0-SNAPSHOT.jar: 32776474 bytes transferred in 28 seconds (1383 KB/s) sftp> sftp> sftp> sftp> cd /home/docker/springms-provider-user sftp> put D:ANDROIDCodeSpring-CloudSpringCloudTutorialspringms-provider-user argetspringms-provider-user-1.0-SNAPSHOT.jar Uploading springms-discovery-eureka-1.0-SNAPSHOT.jar to /home/docker/springms-provider-user/springms-provider-user-1.0-SNAPSHOT.jar 100% 31565KB 1333KB/s 00:00:24 D:/ANDROID/Code/Spring-Cloud/SpringCloudTutorial/springms-provider-user/target/springms-provider-user-1.0-SNAPSHOT.jar: 32763789 bytes transferred in 27 seconds (1313 KB/s) sftp> sftp> sftp> sftp> cd /home/docker/springms-consumer-movie-feign sftp> put D:ANDROIDCodeSpring-CloudSpringCloudTutorialspringms-consumer-movie-feign argetspringms-consumer-movie-feign-1.0-SNAPSHOT.jar Uploading springms-discovery-eureka-1.0-SNAPSHOT.jar to /home/docker/springms-consumer-movie-feign/springms-consumer-movie-feign-1.0-SNAPSHOT.jar 100% 32195KB 1333KB/s 00:00:24 D:/ANDROID/Code/Spring-Cloud/SpringCloudTutorial/springms-consumer-movie-feign/target/springms-consumer-movie-feign-1.0-SNAPSHOT.jar: 32712375 bytes transferred in 25 seconds (1413 KB/s)3.5 查看三個(gè)文件是否傳至服務(wù)器成功
[root@svr01 docker]# ll total 4 drwxr-xr-x 2 root root 76 Dec 15 12:59 demo drwxr-xr-x 2 root root 76 Dec 15 13:44 springms-consumer-movie-feign drwxr-xr-x 2 root root 72 Dec 15 13:09 springms-discovery-eureka drwxr-xr-x 2 root root 69 Dec 15 13:43 springms-provider-user [root@svr01 docker]# ls springms-discovery-eureka/ springms-discovery-eureka-1.0-SNAPSHOT.jar [root@svr01 docker]# ls springms-provider-user/ springms-provider-user-1.0-SNAPSHOT.jar [root@svr01 docker]# ls springms-consumer-movie-feign/ springms-consumer-movie-feign-1.0-SNAPSHOT.jar [root@svr01 docker]#3.6 分別給3個(gè)模塊構(gòu)建Dockfile文件
[root@svr01 ~]# cd /home/docker/springms-discovery-eureka [root@svr01 springms-discovery-eureka]# vim Dockerfile FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD springms-discovery-eureka-1.0-SNAPSHOT.jar app.jar RUN sh -c "touch /app.jar" ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] 保存Dockfile文件 [root@svr01 springms-discovery-eureka]# [root@svr01 springms-discovery-eureka]# cd /home/docker/springms-provider-user [root@svr01 springms-provider-user]# vim Dockerfile FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD springms-provider-user-1.0-SNAPSHOT.jar app.jar RUN sh -c "touch /app.jar" ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] 保存Dockfile文件 [root@svr01 springms-provider-user]# cd /home/docker/springms-consumer-movie-feign [root@svr01 springms-consumer-movie-feign]# vim Dockerfile FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD springms-consumer-movie-feign-1.0-SNAPSHOT.jar app.jar RUN sh -c "touch /app.jar" ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] 保存Dockfile文件 [root@svr01 springms-consumer-movie-feign]# cd .. [root@svr01 docker]# ls springms-discovery-eureka/ Dockerfile springms-discovery-eureka-1.0-SNAPSHOT.jar [root@svr01 docker]# ls springms-provider-user/ Dockerfile springms-provider-user-1.0-SNAPSHOT.jar [root@svr01 docker]# ls springms-consumer-movie-feign/ Dockerfile springms-consumer-movie-feign-1.0-SNAPSHOT.jar [root@svr01 docker]#3.7 分別對3個(gè)模塊進(jìn)行鏡像構(gòu)建
[root@svr01 docker]# cd springms-discovery-eureka [root@svr01 springms-discovery-eureka]# docker build -t springms/discovery-eureka . [root@svr01 springms-discovery-eureka]# cd ../springms-provider-user [root@svr01 springms-provider-user]# docker build -t springms/provider-user . [root@svr01 springms-provider-user]# cd ../springms-consumer-movie-feign [root@svr01 springms-consumer-movie-feign]# docker build -t springms/consumer-movie-feign . [root@svr01 springms-consumer-movie-feign]# cd .. [root@svr01 docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE springms/consumer-movie-feign latest f6e9ac5c27a7 19 hours ago 507.5 MB springms/provider-user latest d2b16dc2df77 19 hours ago 535.2 MB springms/discovery-eureka latest f0f8555dcd0b 19 hours ago 517.1 MB3.8 分別手動(dòng)啟動(dòng)3個(gè)模塊
[root@svr01 docker]# docker run -p 8761:8761 -t -d springms/discovery-eureka [root@svr01 docker]# docker run -p 7900:7900 -t -d springms/provider-user [root@svr01 docker]# docker run -p 7910:7910 -t -d springms/consumer-movie-feign3.9 測試
1、首先進(jìn)入eureka注冊中心:http://宿主機(jī)IP地址:8761,結(jié)果看到2個(gè)微服務(wù)已經(jīng)注冊上來了,若還沒出現(xiàn)的話,稍微等待一下下; 2、測試 http://宿主機(jī)IP地址:7910/movie/4,結(jié)果可以看到信息輸出; 3、說明上述相關(guān)的docker部署操作準(zhǔn)確無誤,一切正常;3.10 后續(xù)展望
既然上面提到了手動(dòng)部署操作,那么服務(wù)多的話,一個(gè)個(gè)手動(dòng)部署,豈不是累死去啊,那么在后續(xù)的章節(jié)中,陸續(xù)給大家講解采用docker服務(wù)編排部署操作;四、下載地址
https://gitee.com/ylimhhmily/SpringCloudTutorial.git
SpringCloudTutorial交流QQ群: 235322432
SpringCloudTutorial交流微信群: 微信溝通群二維碼圖片鏈接
歡迎關(guān)注,您的肯定是對我最大的支持!!!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70817.html
摘要:第篇中用部署一個(gè)簡單的基于服務(wù)治理發(fā)現(xiàn)的項(xiàng)目一大致介紹糾結(jié)了一下下,這么簡單的部署流程是否需要詳細(xì)的貼出來,然而糾結(jié)了一下還是將這個(gè)簡單的部署流程補(bǔ)充完整了經(jīng)過上節(jié)的講解,相信大家已經(jīng)對的命令操作都有了一定的了解,這里我就暫且默認(rèn)大家都擁 SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一個(gè)簡單的基于 Eureka 服務(wù)治理發(fā)現(xiàn)的項(xiàng)目 - 一、大致介紹 ...
摘要:第篇搭建私有庫及管理界面一大致介紹基于前面的部署,容器一多非常不便于管理,于是急需一個(gè)自己的私有庫而目前市面上大多數(shù)的私有庫基本上都是后臺(tái)服務(wù)加前臺(tái)構(gòu)成,于是選來選去,最后選擇了管理界面之所以選擇這款管理界面,我就簡述闡述一下,基于以下 SpringCloud(第 055 篇)CentOS7 搭建 docker-registry 私有庫及管理界面 - 一、大致介紹 1、基于前面dock...
摘要:第篇搭建私有庫及管理界面一大致介紹基于前面的部署,容器一多非常不便于管理,于是急需一個(gè)自己的私有庫而目前市面上大多數(shù)的私有庫基本上都是后臺(tái)服務(wù)加前臺(tái)構(gòu)成,于是選來選去,最后選擇了管理界面之所以選擇這款管理界面,我就簡述闡述一下,基于以下 SpringCloud(第 055 篇)CentOS7 搭建 docker-registry 私有庫及管理界面 - 一、大致介紹 1、基于前面dock...
摘要:第篇安裝以及常用操作命令講解一大致介紹本章節(jié)主要帶入大家初步進(jìn)入,體驗(yàn)一下的安裝步驟以及操作命令。 SpringCloud(第 052 篇)CentOS7 安裝 Docker 以及常用操作命令講解 - 一、大致介紹 本章節(jié)主要帶入大家初步進(jìn)入 Docker,體驗(yàn)一下docker的安裝步驟以及操作命令。 二、安裝步驟 2.1 Docker環(huán)境部署要求 1、Docker 需要運(yùn)行在 64-...
摘要:第篇安裝以及常用操作命令講解一大致介紹本章節(jié)主要帶入大家初步進(jìn)入,體驗(yàn)一下的安裝步驟以及操作命令。 SpringCloud(第 052 篇)CentOS7 安裝 Docker 以及常用操作命令講解 - 一、大致介紹 本章節(jié)主要帶入大家初步進(jìn)入 Docker,體驗(yàn)一下docker的安裝步驟以及操作命令。 二、安裝步驟 2.1 Docker環(huán)境部署要求 1、Docker 需要運(yùn)行在 64-...
閱讀 3532·2021-09-27 13:35
閱讀 3571·2019-08-29 17:09
閱讀 2450·2019-08-26 11:30
閱讀 711·2019-08-26 10:32
閱讀 545·2019-08-26 10:23
閱讀 1206·2019-08-26 10:20
閱讀 3161·2019-08-23 15:26
閱讀 3571·2019-08-23 14:33