Docker作為目前主流的容器技術,使用它部署應用是非常方便的!對於這款主流容器技術,IDEA官方自然也是有所支援的。最近體驗了一把IDEA官方提供的外掛,確實非常好用,今天我們以SpringBoot應用的打包部署為例,來聊聊IDEA官方Docker外掛的使用!
SpringBoot實戰電商專案mall(50k+star)地址:https://github.com/macrozheng/mall
外掛啟用
- 由於該外掛為IDEA內建外掛,直接在外掛設定中啟用就好了;
- 由於我們的Docker環境部署在遠端伺服器上,還需要配置下Docker的連線資訊,在Docker設定裡配置即可,看到
連線成功
提示後就表示配置正確了;
- 接下來開啟IDEA底部的
Services
皮膚,雙擊Docker圖示進行連線,連線成功後就可以對遠端伺服器上的Docker容器和映象進行管理了。
映象管理
- 點選
Images
按鈕,輸入需要下載的映象名稱和版本號就可以下載映象了,這裡IDEA還支援自動提示,實在太貼心了!
- 右鍵指定映象開啟選單,我們還可以對其進行建立容器、檢視、刪除等常規操作;
- 當然我們還可以使用Dockerfile來構建自己的映象,這裡以我的mall-tiny 腳手架專案為例,首先準備好Dockerfile指令碼;
# 該映象需要依賴的基礎映象
FROM java:8
# 將當前目錄下的jar包複製到docker容器的/目錄下
ADD ./mall-tiny-1.0.0-SNAPSHOT.jar /mall-tiny-1.0.0-SNAPSHOT.jar
# 宣告服務執行在8080埠
EXPOSE 8080
# 指定docker容器啟動時執行jar包
ENTRYPOINT ["java", "-jar","/mall-tiny-1.0.0-SNAPSHOT.jar"]
# 指定維護者的名字
MAINTAINER macrozheng
- 然後開啟Dockfile檔案,點選左側按鈕選擇建立新的執行配置;
- 接下來選擇我們配置好的遠端Docker服務,配置好應用打包目錄及映象名稱;
- 然後選擇打包映象,控制檯將輸出如下日誌,jar包會直接上傳到遠端伺服器並打包成映象。
容器管理
- 右鍵映象開啟選單,還可以直接建立容器;
- 由於mall-tiny專案需要用到mysql和redis服務,我們可以先啟動它們;
- 然後修改建立容器的配置,主要就是一些之前使用
docker run
命令的指定的一些配置;
- 大家直接對照下之前使用的
docker run
命令,大概就能知道這些配置的作用了;
docker run -p 8080:8080 --name mall-tiny \
--link mysql:db \
--link redis:redis \
-e 'spring.profiles.active'=prod \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-tiny/logs:/var/logs \
-d mall-tiny/mall-tiny:1.0.0-SNAPSHOT
- 執行過程中可以直接在
Log
標籤中檢視容器的執行日誌,這確實很方便!
與容器互動
- 通過容器皮膚我們可以檢視到很多容器內部資訊,比如檢視環境變數;
- 還可以檢視容器的埠對映配置;
- 還可以檢視之前通過
docker inspect
命令獲取的資訊,比如檢視容器執行的IP地址;
- 還可以直接進入容器內部去執行命令,還記得之前使用的
docker exec -it
命令麼。
Docker Compose 支援
- 使用該外掛也可以通過Docker Compose來部署應用,首先建立
docker-compose.yml
檔案,由於mysql容器沒有使用Docker Compose來建立,這裡改用IP來訪問;
version: '3'
services:
redis:
image: redis:5
container_name: redis-tiny
command: redis-server --appendonly yes
volumes:
- /mydata/redis-tiny/data:/data #資料檔案掛載
ports:
- 6379:6379
mall-tiny:
image: mall-tiny/mall-tiny:1.0.0-SNAPSHOT
container_name: mall-tiny
links:
- redis:redis
depends_on:
- redis
ports:
- 8080:8080
environment:
- 'spring.profiles.active=prod'
- 'spring.datasource.url=jdbc:mysql://192.168.3.105:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false'
- 'spring.redis.host=redis'
volumes:
- /etc/localtime:/etc/localtime
- /mydata/app/mall-tiny/logs:/var/logs
- 然後直接點選
docker-compose.yml
檔案箭頭即可將應用部署到遠端伺服器,確實很方便!
- 部署完成後即可訪問專案的Swagger頁面,訪問地址:http://192.168.3.105:8080/swa...
總結
今天體驗了一把IDEA的官方Docker外掛,不使用命令列就可以實現遠端Docker映象與容器的管理,還支援Docker Compose部署,功能確實很強大!在平時開發過程中,使用這款外掛來打包、部署、執行SpringBoot應用確實很方便,感興趣的小夥伴可以嘗試下它!
參考資料
官方文件:https://www.jetbrains.com/hel...