如何使用windows版Docker並在IntelliJ IDEA使用Docker運行Spring Cloud項目


 

如何使用windows版Docker並在IntelliJ IDEA使用Docker運行Spring Cloud項目

#1:前提准備

  1.1 首先請確認你的電腦是windows10專業版或企業版,只有這只有這兩個版本才帶有hyper-v

#2:介紹

  以往我們如果想要在windows上使用docker,都是使用virual box來創建虛擬機,自從windows10發布以來,微軟宣布了一系列的linux軟件登陸windows,其中就包括了docker,現在我們可以使用windows自帶的hyper-v虛擬機來創建運行docker服務。

  InteliiJ Idea作為目前最實用的IDE對Docker也提供了支持。

#3:安裝Docker for windows

  3.1 從官網下載docker for windows,https://store.docker.com/editions/community/docker-ce-desktop-windows,下載完畢后進入安裝界面,docker會自動安裝,界面一閃而過,電腦運行速度還不錯,安裝完成之后,docker會彈個窗告訴你hyper-v未開啟,像這樣。

  不過如果你現在點擊OK基本上是沒有用的,得先去BIOS里打開硬件虛擬化,本機是惠普的機器,開啟點按f10進入bios,其他品牌的機器自行搜索進入,像這樣

重啟電腦后docker會自動運行,依然彈出上面那個hyper-v未開啟的窗口,這回可以點擊OK讓docker來幫你開啟hyper-v,或者是自己在控制面板-程序-程序和功能-啟用或關閉windows功能里開啟hyper-v

到此,我們的docker for windows已經安裝完成。在命令行中輸入docker --version可以查看已經安裝的docker版本

 

  3.2 使用docker中的鏡像 

    3.2.1  先用官方鏡像作個示例 

      使用 docker search <imageName> 來搜索對應的鏡像 

然后使用 docker pull <鏡像名:tag> 例如docker pull nginx:latest  ,tag不輸入是默認拉取最新的 

當鏡像下載玩之后我們通過docker images命令來查看所有本地的鏡像

我這里下載了java以及nginx的鏡像 其中還有我已經打包好的spring cloud的eureka注冊中心的鏡像

使用docker run命令來運行鏡像,我這里運行nginx的鏡像

 

使用docker運行nginx成功后訪問localhost:80就可以訪問到nginx的主頁,說明我們已經在docker運行了我們的第一個鏡像,雖然是官方鏡像,但心里的成就感還是不低的。

好的,在運行了第一個鏡像之后,我們要開始在IntelliJ IDEA中使用docker並構建我們的第一個spring boot程序放到docker中去運行

#4:IDEA的准備工作

1:Docker插件,首先需要在你的IDEA中安裝Docker插件,定位到File-Setting-Plugins后搜索Docker Integration安裝。

2:配置Docker服務器,在IDEA中定位到File-Setting-build,Execution,Deployment-Docker

如果你沒用使用Docker Machine來管理虛擬機的需求的話,我們使用默認的Docker守護進程就OK了,不過在此之前我們還需要設置一下docker

 

將docker與本地的連接設置為不需要TLS加密。

在完成這一步之后,可以在IDEA的配置窗口看到成功連接到了本機上的docker

到這里,我們已經完成對docker的配置,接下來就可以進入真正的實施階段。

#5:創建spring cloud項目

 1.首先在Idea中創建一個spring boot項目,怎么創建在此就不再贅述了

創建完成之后,我們在pom.xml中添加依賴項

本地編寫的是spring cloud的注冊中心項目,所以還需要加上

spring的版本需要與spring cloud的版本號對應,詳細的對應信息可以去http://projects.spring.io/spring-cloud/查看

 由於本次只是簡單地示范如何在IDEA中部署spring boot項目到docker中,所以在項目中只需要對eureka注冊中心進行簡單的配置就OK了,

在啟動類中加上注解標明這是一個eureka注冊中心的項目

在配置文件中配置端口

然后我們就完成了項目的編寫,可以先啟動看看項目是否能夠啟動,啟動之后我們訪問http://localhost:8761/ ,可以看到我們的eureka注冊中心已經啟動,項目編寫沒有問題

接下來就到了如何把項目部署到docker中去的問題了

#6:將項目部署到Docker中

首先我們需要編寫Dockerfile文件,在src-main目錄下新建docker文件夾,然后在其中新建Dockerfile文件

文件內容如下

 

其中紅框的地方是本項目打包之后的jar包名字,默認是artifactId-version.jar,同時我們可以看到在左上叫有個運行的標記,很對,這個就是用來在IDEA構建jar包到鏡像,然后放到Docker中運行的按鈕,不過我們還是需要先配置一下

我們先配置鏡像名稱以及容器名稱

然后需要對docker容器需要映射的端口號進行配置

 

然后我們點擊run,可以看到,很快就報錯了,這是由於DockerFile與我們生成的jar包不在同一個文件夾造成的。

為了解決這個問題,我找到了兩種方案:

方案1:先使用maven命令

mvn clean package

對項目進行打包,命令執行完畢之后可以在target目錄下看到已經打包完成的jar包

然后把jar包放到Dockerfile所在的目錄下,像這樣

然后接着點擊Dockerfile中的運行,

 

在Deploylog窗口中,可以看到,這次構建鏡像就成功了,在log窗口中可以看到我們的項目在運行過程中打出的日志信息

很明顯,這次的構建和部署都成功了,訪問http://localhost:8761/,出現了我們想要看到的東西。

 

在命令行中使用docker ps 命令查看正在運行的容器信息

可以看到,我們在IDEA中編寫的項目已經運行到了docker中。

方案2:使用docker-maven-plugin插件,在pom.xml中配置插件

然后在ternimal中運行 mvn clean package -DskipTests=true docker:build命令,打包項目並構建鏡像,命令執行完畢可以看到

在docker窗口下,我們構建的鏡像已經出現在窗口中了

右鍵點擊創建一個新的容器

跳轉到我們的部署配置里面,只需要像方案1中的一樣進行配置完畢后點擊run就OK了,訪問http://localhost:8761/,同樣可以看到我們的eureka的運行信息。docker ps 命令也顯示我們的容器已經運行起來。

#7:總結

好的,到這里我們先是在安裝了windows版的docker,然后使用IDEA創建了一個spring cloud項目,並在IDEA中將此項目部署到了docker中,本次隨筆就到此為止了。

如果你對本篇博客有興趣的話,歡迎共同交流和討論

有任何問題請聯系hei12138@outlook,com


免責聲明!

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



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