12.02 這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

來源:https://www.cnblogs.com/hei12138/p/ideausedocker.html

#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未開啟,像這樣。

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

  3.2 使用docker中的鏡像

    3.2.1 先用官方鏡像作個示例

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

然後使用 docker pull 例如docker pull nginx:latest ,tag不輸入是默認拉取最新的 

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

好的,在運行了第一個鏡像之後,我們要開始在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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

#5:創建spring cloud項目

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

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

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

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

在配置文件中配置端口

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

#6:將項目部署到Docker中

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

文件內容如下

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

方案1:先使用maven命令

mvn clean package

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

然後接著點擊Dockerfile中的運行,

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

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

這Windows版的Docker也太難用了,該如何在IDEA中運行SpringCloud

#7:總結

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


分享到:


相關文章: