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


 

 

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

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

  new 一個project

  

  下一步,取名docker-demo

  

  下一步,選擇web組件就可以了

  

  下一步,選擇自己對應的工程目錄

  

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

  

  我們在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文件里配置如下

<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登錄阿里雲服務器,進行拉取剛剛推送的鏡像

 

 然后進行啟動鏡像

在瀏覽器查看

跟我們本地的服務一模一樣

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

 


免責聲明!

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



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