idea整合docker快速部署springboot應用的詳細過程
一、前言
容器化一詞相信大傢已經不陌生瞭,聽到它我們可能會想到docker、k8s、jenkins、rancher等等。那麼今天我來說一下idea如何使用docker快速部署springboot應用。
二、環境及工具
- windows10(開發)
- centos 7.6 (部署)
- idea
- docker
- xshell
三、安裝docker以及配置遠程連接
安裝docker步驟網上有很多,在這裡還是再說一下:
先更新一波
sudo yum update
安裝最新的docker
yum install docker -y
啟動docker
systemctl start docker
使用docker images
可以查看鏡像狀態,如下圖所示代表啟動成功(目前裡面沒有鏡像)
如果是如下圖所示,則代表啟動失敗
開啟docker遠程連接
編輯docker.service文件
vim /lib/systemd/system/docker.service
打開後,內容如下所示:
在綠色光標那一行添加如下:
# 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,改完後,內容如下圖所示:
保存完畢後對配置文件進行重載,並重啟docker:
systemctl daemon-reload systemctl restart docker
為瞭檢查12377端口是否被監聽,執行lsof -i:12377
如果使用的是雲服務器則需要開啟12377防火墻規則,如果使用默認的2375端口,隻是虛擬機或者內網使用倒也無所謂,如果暴露在公網,估計第二天就會發現你的cpu爆滿,掛載瞭大量馬、礦程序,有時間的同學可以進一步配置安全配置,這裡可以自行搜索。
四、idea連接遠程docker
安裝插件docker
配置連接
安裝完畢後,找到setting中如下圖位置
在TCP socket配置你的docker地址,格式如下:
tcp://ip:12377
,填寫完後,稍等一小會兒,下邊會進行連接測試,連接成功後會如上圖顯示連接成功。 五、springboot項目配置docker pom配置
博主當前項目打包方式是jar包,pom中properties配置如下
<properties> <!--properties節點中設置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是為瞭找到項目中配置的Dockerfile
,imageName則是鏡像名稱
創建Dockerfile(註意Dockerfile不是駝峰命名)
結構如下圖所示
Dockerfile文件內容:
FROM williamyeh/java8 # 源可以使用 docker search java8搜索得到的第一個源 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 :指定基礎鏡像,必須為第一個命令
VOLUME : 用於指定持久化目錄
ADD : 將本地文件添加到容器中,tar類型文件會自動解壓(網絡壓縮資源不會被解壓),可以訪問網絡資源,類似wget
ENTRYPOINT : 配置容器,使其可執行化
其餘指令可以自行搜索
- 到此為止,需要的配置已經完成,接下來開始運行
- 找到idea右側的maven窗口,執行clean
clean完畢後再執行package進行打包
然後執行如圖所示的docker:build
在這個過程中會在target目錄下創建docker文件夾,並把Dockerfile文件和生成的jar包拷貝下來,然後根據Dockerfile中的配置拉取基礎鏡像,傳送jar到服務器指定位置,再進行鏡像制作。BUILD SUCCESS後點擊idea底部的Services
窗口如下
雙擊Docker進行連接,連接成功後我們能夠看到鏡像和容器運行狀況:
然後就可以右擊springboot/**:latest鏡像創建容器
彈出create選項,進行創建配置
在裡面配置容器名稱以及運行選項,最後點擊run運行容器。在Services窗口中我們能夠看到容器的運行日志:
到此為止,idea整合docker快速部署springboot應用便完成瞭,後邊有空博主會總結下jenkins+k8s+docker的使用。
到此這篇關於idea整合docker快速部署springboot應用的文章就介紹到這瞭,更多相關idea docker部署springboot內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Springboot服務Docker化自動部署的實現方法
- idea集合docker實現鏡像打包一鍵部署
- IDEA使用Docker插件(菜鳥教程)
- centos下docker安裝及springboot遠程發佈docker的方法
- IDEA 配置Docker的過程