idea整合docker快速部署springboot應(yīng)用的詳細(xì)過(guò)程
一、前言
容器化一詞相信大家已經(jīng)不陌生了,聽到它我們可能會(huì)想到docker、k8s、jenkins、rancher等等。那么今天我來(lái)說(shuō)一下idea如何使用docker快速部署springboot應(yīng)用。
二、環(huán)境及工具
- windows10(開發(fā))
- centos 7.6 (部署)
- idea
- docker
- xshell
三、安裝docker以及配置遠(yuǎn)程連接
安裝docker步驟網(wǎng)上有很多,在這里還是再說(shuō)一下:
先更新一波
sudo yum update
安裝最新的docker
yum install docker -y
啟動(dòng)docker
systemctl start docker
使用docker images
可以查看鏡像狀態(tài),如下圖所示代表啟動(dòng)成功(目前里面沒有鏡像)
如果是如下圖所示,則代表啟動(dòng)失敗
開啟docker遠(yuǎn)程連接
編輯docker.service文件
vim /lib/systemd/system/docker.service
打開后,內(nèi)容如下所示:
在綠色光標(biāo)那一行添加如下:
# centos7及以上 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock # centos7以下 ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
這里我使用其他端口,如12377,改完后,內(nèi)容如下圖所示:
保存完畢后對(duì)配置文件進(jìn)行重載,并重啟docker:
systemctl daemon-reload systemctl restart docker
為了檢查12377端口是否被監(jiān)聽,執(zhí)行lsof -i:12377
如果使用的是云服務(wù)器則需要開啟12377防火墻規(guī)則,如果使用默認(rèn)的2375端口,只是虛擬機(jī)或者內(nèi)網(wǎng)使用倒也無(wú)所謂,如果暴露在公網(wǎng),估計(jì)第二天就會(huì)發(fā)現(xiàn)你的cpu爆滿,掛載了大量馬、礦程序,有時(shí)間的同學(xué)可以進(jìn)一步配置安全配置,這里可以自行搜索。
四、idea連接遠(yuǎn)程docker
安裝插件docker
配置連接
安裝完畢后,找到setting中如下圖位置
在TCP socket配置你的docker地址,格式如下:
tcp://ip:12377
,填寫完后,稍等一小會(huì)兒,下邊會(huì)進(jìn)行連接測(cè)試,連接成功后會(huì)如上圖顯示連接成功。 五、springboot項(xiàng)目配置docker pom配置
博主當(dāng)前項(xiàng)目打包方式是jar包,pom中properties配置如下
<properties> <!--properties節(jié)點(diǎn)中設(shè)置docker鏡像的前綴“springboot”--> <docker.image.prefix>springboot</docker.image.prefix> </properties>
build中配置如下:
<build> <finalName>docker-demo</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> </plugin> <plugin> <!-- docker-maven插件--> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <dockerHost>http://ip:12377</dockerHost> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
resources是為了找到打好的jar,dockerDirectory是為了找到項(xiàng)目中配置的Dockerfile
,imageName則是鏡像名稱
創(chuàng)建Dockerfile(注意Dockerfile不是駝峰命名)
結(jié)構(gòu)如下圖所示
Dockerfile文件內(nèi)容:
FROM williamyeh/java8 # 源可以使用 docker search java8搜索得到的第一個(gè)源 VOLUME /tmp ADD docker-demo.jar /app/docker-demo.jar #COPY target/demo-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java", "-jar", "/app/docker-demo.jar"]
FROM :指定基礎(chǔ)鏡像,必須為第一個(gè)命令
VOLUME : 用于指定持久化目錄
ADD : 將本地文件添加到容器中,tar類型文件會(huì)自動(dòng)解壓(網(wǎng)絡(luò)壓縮資源不會(huì)被解壓),可以訪問(wèn)網(wǎng)絡(luò)資源,類似wget
ENTRYPOINT : 配置容器,使其可執(zhí)行化
其余指令可以自行搜索
- 到此為止,需要的配置已經(jīng)完成,接下來(lái)開始運(yùn)行
- 找到idea右側(cè)的maven窗口,執(zhí)行clean
clean完畢后再執(zhí)行package進(jìn)行打包
然后執(zhí)行如圖所示的docker:build
在這個(gè)過(guò)程中會(huì)在target目錄下創(chuàng)建docker文件夾,并把Dockerfile文件和生成的jar包拷貝下來(lái),然后根據(jù)Dockerfile中的配置拉取基礎(chǔ)鏡像,傳送jar到服務(wù)器指定位置,再進(jìn)行鏡像制作。BUILD SUCCESS后點(diǎn)擊idea底部的Services
窗口如下
雙擊Docker進(jìn)行連接,連接成功后我們能夠看到鏡像和容器運(yùn)行狀況:
然后就可以右擊springboot/**:latest鏡像創(chuàng)建容器
彈出create選項(xiàng),進(jìn)行創(chuàng)建配置
在里面配置容器名稱以及運(yùn)行選項(xiàng),最后點(diǎn)擊run運(yùn)行容器。在Services窗口中我們能夠看到容器的運(yùn)行日志:
到此為止,idea整合docker快速部署springboot應(yīng)用便完成了,后邊有空博主會(huì)總結(jié)下jenkins+k8s+docker的使用。
到此這篇關(guān)于idea整合docker快速部署springboot應(yīng)用的文章就介紹到這了,更多相關(guān)idea docker部署springboot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker-compose中的環(huán)境變量問(wèn)題
這篇文章主要介紹了docker-compose中的環(huán)境變量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Docker多平臺(tái)安裝與配置指南的實(shí)現(xiàn)
這篇文章主要介紹了Docker多平臺(tái)安裝與配置指南的實(shí)現(xiàn),深入研究了Docker在Linux、Windows、和macOS等不同平臺(tái)上的安裝過(guò)程及Docker鏡像管理、容器運(yùn)維、使用Docker Compose進(jìn)行多容器管理,以及網(wǎng)絡(luò)與數(shù)據(jù)管理等,感興趣的可以了解一下2024-01-01docker環(huán)境搭建mgr集群的問(wèn)題及原理
這篇文章主要介紹了docker?搭建mgr集群,大家都知道MySQL推出MGR之前,傳統(tǒng)復(fù)制模式分為異步復(fù)制和半同步復(fù)制,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05docker: invalid reference format.問(wèn)題
這篇文章主要介紹了docker: invalid reference format.問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01ubuntu22通過(guò)docker安裝wechat啟動(dòng)后無(wú)界面的問(wèn)題及解決方法
這篇文章主要介紹了ubuntu22通過(guò)docker安裝wechat啟動(dòng)后無(wú)界面的解決方法,通過(guò)微信創(chuàng)建腳本發(fā)現(xiàn)一系列問(wèn)題,最終在小編的努力下順利解決,下面把解決過(guò)程分享給大家,需要的朋友可以參考下2022-07-07使用dockerfile構(gòu)建nginx鏡像的方法示例
這篇文章主要介紹了使用dockerfile構(gòu)建nginx鏡像的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09云原生Docker創(chuàng)建并進(jìn)入mysql容器的全過(guò)程
前面我們已經(jīng)安裝好了Docker,也簡(jiǎn)單了解了Docker,下面這篇文章主要給大家介紹了關(guān)于云原生Docker創(chuàng)建并進(jìn)入mysql容器的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02