接著上一篇docker開啟遠程訪問后,我們就可以通過idea使用docker插件把項目部署到docker了。
首先我們先在idea安裝docker插件:
在setting中安裝docker插件
等待安裝完成重啟idea
重啟完成后,我們打開settings可以看到docker
點擊"+",添加一個連接。
安裝上篇配置的docker信息。我們通過tcp的方式連接到centos的docker服務。信息配置好后,idea會自動檢測。然后會輸出“connection successful”。
然后再工具欄選擇docker的窗口,點擊運行
接下來我們在idea上面操作docker
首先新建一個簡單的springboot項目
我們的目的就是要把該項目放到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"]
然后設置一下啟動項
選擇dockerFile
這樣就配置好了。不過我們這種方式有一個不好的地方就是,我們以后每次啟動的時候需要先把項目編譯的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下面
然后我們把Dockerfile文件直接放在項目的根目錄
最后我們修改一下,啟動配置:Dockerfile選擇根目錄下面的那個
接下來我們就啟動docker,構建鏡像中,由于是云服務器,這里上傳鏡像需要一段時間。
等到docker啟動完成
我們去linux上面查看一下:
通過命令docker ps
docker ps
通過命令檢查進程是否存在
ps -ef|grep app*
這里說明我們已經成功把項目部署到了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
這里我們可以看到Names:spring_demo的容器對應的ports還沒有端口映射。所以現在我們做的就是把該容器的8099端口映射出來。
docker run -d -p 8099:8099 37a83b7fa149
我們先把原來的容器給停止,然后使用上面的命令制定映射宿主機端口的方式來啟動容器。
執行完成后,查看容器的運行情況
到這里我們已經可以看到ports已經顯示端口的映射了。
最后一步:就是在云服務器安全組策略添加一下,宿主機8099的端口訪問。
我們在外網驗證一下我們部署的springboot項目的接口:
訪問:http://IP:8099/docker/getValue