windows環境下,spring boot服務使用docker打包成鏡像並推送到雲服務器私有倉庫

 

 

最近在淘寶上學習springcloud教程,其中有幾節課是講解講本地springboot服務打包成鏡像並推送到雲服務器私有倉庫,可是教程裏面用的事Mac環境,個人是Windows環境,並且課程裏面沒有講解docker本地打包所須要的必備環境,最後我是利用三個晚上終於解決了這個問題,故寫此文章總結一下,有寫的不對的地方,請多包涵java

       先創建一個spring boot 服務,這個服務比較簡單,我也是根據教程上面創建的,使用的事idea工具web

  new 一個projectspring

  

  下一步,取名docker-demodocker

  

  下一步,選擇web組件就能夠了shell

  

  下一步,選擇本身對應的工程目錄apache

  

  點擊完成,在新窗口中打開docker-demo工程,這就是一個最基本springboot應用windows

  

  咱們在DockerDemoApplication添加以下代碼:瀏覽器

    @RequestMapping("/user/find")
    @ResponseBody
    public Object findUser(){
        Map<String,String> map = new HashMap<String,String>();
        map.put("name","xdclass.net");
        map.put("age","28");
        return map;
    }

  

  而後啓動服務,端口默認是8080,咱們在瀏覽器輸入地址:localhost:8080/user/find安全

  

  在pox文件裏配置以下springboot

<docker.image.prefix>xdclass</docker.image.prefix>

<!--項目打包的名稱-->
<finalName>docker-demo</finalName>
<plugin>
     <groupId>com.spotify</groupId>
     <artifactId>dockerfile-maven-plugin</artifactId>
     <version>1.3.6</version>
     <configuration>
         <repository>${docker.image.prefix}/${project.artifactId}</repository>
              <buildArgs>
                    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
              </buildArgs>
     </configuration>
</plugin>

添加Dockerfile文件

Dockerfile文件裏添加以下指令

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

按照教程裏面如今就開始打包鏡像,打開idea terminal窗口,輸入mvn install dockerfile:build

執行失敗,拋出了一個異常信息

Failed to execute goal com.spotify:dockerfile-maven-plugin:1.3.6:build (default-cli) on project docker-demo: Could not build image: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingExcep
tion: org.apache.http.conn.HttpHostConnectException: Connect to 192.168.99.100:2376 [/192.168.99.100] failed: Connection timed out: connect -> [Help 1]

經查詢,是本地沒有安裝docker環境,因此下面咱們開始安裝本地docker環境

 首先安裝idea docker插件

 打開file->setting->Plugins,搜索docker,而後點擊search in respositories,以下圖

點擊安裝

我是提早下載好Docker-181.3007.4.zip包,本地安裝

 

 而後從新啓動idea工具,再次打開file->setting

 已經安裝成功了,並且Dockerfile中的指令已經有了顏色變化,以下所示

下面最關鍵的是下載DockerToolbox-18.03.0-ce.exe安裝包,並進行安裝(下載地址http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/)

雙擊開始安裝:我們不勾選

下一步,選擇安裝目錄

下一步

 

下一步

下一步

安裝成功

安裝成功會出現下面三個圖標

雙擊打開Oracle VM VirtualBox

而後再雙擊Docker Quickstart Terminal,打開以後會自動安裝默認虛擬機,會有幾分鐘等待時間

出現這個畫面,說明已經安裝默認虛擬機已經安裝成功,咱們能夠看下Oracle VM VirtualBox

已經有一個正在運行的默認虛擬機了,到這一步基本上安裝完成,咱們在執行一下mvn install dockerfile:build

看到沒有,已經在執行Dockerfile中的指令了,可是很是的慢,由於咱們本地沒有進行鏡像加速,因此咱們給本地docker配置鏡像加速

參照:https://blog.csdn.net/slibra_L/article/details/77505003

第一步:

在https://www.daocloud.io/mirror進行註冊登陸

而後點擊以下圖標:

跳轉到下一個頁面,拉到最下面

複製http://f1361db2.m.daocloud.io而後找個文本先備份一下

而後雙擊打開

 

點擊DOCKER CU,會出現下面的彈出框

 而後分別執行以下指令

docker-machine ssh default
  sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=http://f1361db2.m.daocloud.io |g" /var/lib/boot2docker/profile
exit

標紅的地址就是剛剛備份的地址

而後默認虛擬機和docker重啓動就ok了,咱們再試一下mvn install dockerfile:build

很快就執行完成了

而後咱們在Docker Quickstart Terminal,輸入docker images 進行查看鏡像

說明已經打包鏡像成功了

接下來,咱們將本地的鏡像推送到阿里雲鏡像倉庫(需本身購買阿里雲服務器,而後開通我的鏡像倉庫,也可使用其餘的雲服務器,好比騰訊雲),打開阿里我的鏡像倉庫

點擊管理

這裏給出鏡像推送的三個步驟:登陸阿里雲服務器、給本地鏡像打一個標籤、推送

推送成功,打標籤的時候,必定要選擇本身本地的鏡像id

而後查看一下阿里雲服務器的鏡像倉庫,如圖所示

而後,用xshell登陸阿里雲服務器,進行拉取剛剛推送的鏡像

 

 而後進行啓動鏡像

在瀏覽器查看

跟咱們本地的服務如出一轍

注意:若是服務正常啓動,可是就是訪問不了,那應該是網絡安全組沒有配置,也就是防火牆,需手動開放對應的端口號

相關文章
相關標籤/搜索