接着上一篇docker開啟遠端通路後,我們就可以通過idea使用docker插件把項目部署到docker了。
首先我們先在idea安裝docker插件:
在setting中安裝docker插件
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuMzN4EjM2kTO4UjZ0ETZ2EjZkZmZlhTZiRjZmFDNhRWZfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
1535529477982.png
等待安裝完成重新開機idea
重新開機完成後,我們打開settings可以看到docker
1535531268677.png
點選"+",添加一個連接配接。
1535532032854.png
安裝上篇配置的docker資訊。我們通過tcp的方式連接配接到centos的docker服務。資訊配置好後,idea會自動檢測。然後會輸出“connection successful”。
然後再工具欄選擇docker的視窗,點選運作
1535532271985.png
接下來我們在idea上面操作docker
首先建立一個簡單的springboot項目
1535532764721.png
我們的目的就是要把該項目放到docker上面跑起來
在src/main下面建立一個docker檔案夾,目錄下建立一個Dokerfile檔案,寫入一下的内容:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD dockerdemo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
1535533764897.png
然後設定一下啟動項
選擇dockerFile
1535533870788.png
1535533924885.png
這樣就配置好了。不過我們這種方式有一個不好的地方就是,我們以後每次啟動的時候需要先把項目編譯的jar
放到src/main/docker的目錄下面。因為我們在Dockerfile的檔案中是這樣配置的
ADD dockerdemo-0.0.1-SNAPSHOT.jar app.jar
這裡的dockerdemo-0.0.1-SNAPSHOT.jar就是我們的jar,這樣的配置是說明在目前目錄下找這個jar。
是以為了解決上面的麻煩我們把Docker的配置修改一下
ADD /target/dockerdemo-0.0.1-SNAPSHOT.jar app.jar
把ADD的值指向絕對路徑,target下面
1535534140059.png
然後我們把Dockerfile檔案直接放在項目的根目錄
1535534229354.png
最後我們修改一下,啟動配置:Dockerfile選擇根目錄下面的那個
1535534279183.png
接下來我們就啟動docker,建構鏡像中,由于是雲伺服器,這裡上傳鏡像需要一段時間。
1535534419564.png
等到docker啟動完成
1535534572312.png
我們去linux上面檢視一下:
通過指令docker ps
docker ps
1535534490110.png
通過指令檢查程序是否存在
ps -ef|grep app*
1535534850221.png
這裡說明我們已經成功把項目部署到了linux上的docker中了。
為了進一步驗證,我們寫一個接口:
@RestController
@RequestMapping(value = "docker")
public class DockerController {
@RequestMapping(value = "getValue")
public String dockerTest() {
return "this is docker controller return value";
}
}
重新把項目部署一下。
部署完成後,我們目前還不能馬上就可以通路這個剛部署的項目服務~因為:
- 第一 我們還沒有在雲伺服器的安全組政策配置外網可以通路的端口
-
- 第二 我們在設定安全組政策是設定哪。 8099嗎?
- 我們要明白項目中設定的項目端口8099,我們是把這個項目整個部署到了docker的容器中的,而docker中的每一個容器我們都可以看作一個虛拟機。是以容器裡面的端口的獨立的。是以我們還要在雲伺服器上配置docker容器裡面springboot項目服務端口8099的映射。 Selection_005.png
idea使用docker插件
這裡我們可以看到Names:spring_demo的容器對應的ports還沒有端口映射。是以現在我們做的就是把該容器的8099端口映射出來。
docker run -d -p 8099:8099 37a83b7fa149
Selection_006.png
我們先把原來的容器給停止,然後使用上面的指令制定映射主控端端口的方式來啟動容器。
執行完成後,檢視容器的運作情況
Selection_007.png
到這裡我們已經可以看到ports已經顯示端口的映射了。
最後一步:就是在雲伺服器安全組政策添加一下,主控端8099的端口通路。
_1535535426089.png
我們在外網驗證一下我們部署的springboot項目的接口:
通路:
http://IP:8099/docker/getValueSelection_009.png