一、前言
在項目中使用docker後,經過docker的方式來啓動系統,須要通過編譯、打jar包、打鏡像、啓動等階段。在各類自動化工具的出現,對打包、部署等工做帶來了便利,通常都會選擇git+Jenkins方式進行自動化部署。在面對本地開發調試階段,若是過度的依賴自動化工具,會顯得並非那麼的方便,好比:頻繁的代碼調整修改,卻要進行代碼的git提交、登陸Jenkins進行部署,這樣的頻繁操做,甚至會讓你發瘋的。html
在開發階段,對應開發人員接觸最多的就是開發工具IDE,如:IDEA中就提供了好多不錯的插件供開發人員使用。針對上述問題,IDEA也提供的一些插件來解決這類問題。java
本文主要來說述,如何在IDEA中經過插件來部署docker項目,方便開發階段的調試部署工做。git
二、準備工做
- Centos7 docker環境
- IDEA開發環境
- SpringBoot項目(其餘類型的項目都可)
(若是你還不對安裝docker環境,或有疑問,可參考以前的一篇文件《CentOS7 下Docker安裝、啓動》)docker
三、IDEA直連docker服務器
3.1 開啓docker遠程訪問
爲了確保本地IDEA可以訪問服務器上的docker環境,則須要開發對docker的2375端口的訪問權限。服務器
(1) 打開docker服務啓動配置文件/usr/lib/systemd/system/docker.service,在ExecStart=中追加-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock,以下:app
(2) 重啓docker環境dom
systemctl daemon-reloadmaven
systemctl start dockertcp
(3) 關閉防火牆工具
關閉防火牆:
systemctl stop firewalld.service
禁止firewall開機啓動:
systemctl disable firewalld.service
(4) 本地telnet驗證2375端口
在本地(即:IDEA開發環境機器)cmd中,經過telnet命令鏈接docker環境的2375端口,以下:
顯示以下,則代表能夠遠程訪問。
3.2 IDEA上安裝docker插件
安裝Docker integration插件,若是已安裝,請忽略本步驟。
打開File->Settings->Plugins,搜索Docker,能夠看見Docker integration插件,安裝提示進行一步步安裝,安裝完畢重啓IEDA。
重啓IDEA後,打開File->Settings->Build,Execution,Deployment,若是有Docker列表,則說明插件安裝成功。
3.3 鏈接配置docker服務器
打開File->Settings->Build,Execution,Deployment->Docker,按照下圖進行配置便可。
說明:步驟③ 自定義命名便可
步驟④ 填寫docker環境地址,格式爲:tcp://ip:2375 URL填寫完後,進行自動驗證,並顯示步驟⑤成功提示。
3.4 直連docker服務器使用
語言 | 方法 |
---|---|
7729 | 1Wq9Ndjf37 |
2V164 | 抖音如何刷粉絲 |
9192 | 2007/11/18 02:39:35 |
在IDEA中,以下圖操做,便可直連docker服務器,可查看docker環境上全部鏡像、容器,並支持重啓、刪除等一系列操做,更多功能使用時再細細挖掘吧。
四、IDEA中項目Docker部署
4.1 使用docker-maven-plugin插件
在項目pom.xml中使用docker-maven-plugin插件,即可完成從編譯、打包、打鏡像、部署等流程。在pom.xml <build><plugins>...</plugins></build>中添加docker-maven-plugin插件配置,以下:
<!--使用docker-maven-plugin插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <!--將插件綁定在某個phase執行--> <executions> <execution> <id>build-image</id> <!--將插件綁定在package這個phase上。也就是說,用戶只需執行mvn package ,就會自動執行mvn docker:build--> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--指定生成的鏡像名--> <imageName>${project.artifactId}</imageName> <!--指定標籤--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!-- 指定 Dockerfile 路徑--> <dockerDirectory>${project.basedir}</dockerDirectory> <!--指定遠程docker環境地址--> <dockerHost>http://192.168.1.1:2375</dockerHost> <!-- 複製jar包到docker容器指定目錄配置 --> <resources> <resource> <targetPath>/</targetPath> <!--jar包所在的路徑,此處配置的 即對應target 目錄--> <directory>${project.build.directory}</directory> <!-- 須要包含的jar包,這裏對應的是 Dockerfile中添加的文件名 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
4.2 建立Dockerfile文件
在工程根目錄下新建Dockerfile文件,以下:
FROM openjdk:8-alpine #擁有者 LABEL maintainer "xcbeyond" VOLUME [ "/tmp" ] # app.jar是你項目的jar包 COPY app.jar /app.jar #對外暴露的端口 EXPOSE 1000 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
4.3 Build
在IDEA的右邊找到Maven Projects,找到Lifecycle,雙擊package打包,第一次打包比較慢,須要耐心等等。
看到下面就說明成功了
4.4 部署、啓動
以下操做建立docker容器,並啓動。
- Image ID: 是打包生成的鏡像名
- Container name: 容器名字,自定義便可。
- Bind ports: 是docker對外暴露的端口
在IDEA中部署、啓動後,可登錄docker環境,經過docker ps命令能夠發現容器已經啓動了。
是否是很帥、很方便,具體怎麼使用,就根據實際需求進行靈活使用了。