idea怎麼快速實現將SpringBoot專案打包Docker映像並部署
1.修改docker的設定檔
修改檔案資訊路徑如下:
/etc/docker/daemon.json
在設定檔中加入以下內容:
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
注意:如果沒有這個daemon.json,就自己在/etc/docker/目錄下創建一個
touch daemon.json
tcp是開啟遠端訪問,unix是本機訪問,不開啟本機訪問,在伺服器上使用時會有以下錯誤:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running ?
修改完成之後依序執行以下指令:
#重新加载配置文件 systemctl daemon-reload # 重启服务 systemctl restart docker.service # 查看端口是否开启 默认端口2375 netstat -anp|grep 2375
#2.設定埠開放
依序執行以下命令
添加指定需要开放的端口: firewall-cmd --zone=public --add-port=2375/tcp --permanent 重载入添加的端口: firewall-cmd --reload 查询指定端口是否开启成功: firewall-cmd --query-port=2375/tcp
注意:以上配置全是在防火牆開啟的情況下進行,如果未開啟系統防火牆,則無需以上配置,例如我的伺服器就沒有配置防火牆,運行時則顯示以下資訊:
最後我們看看我們的設定是否生效
curl http://127.0.0.1:2375/info
如果出現以下資訊則說明配置成功
3.IDEA安裝Docker外掛程式
如果你的idea版本較高,則內建了docker外掛程式
##注意:我上面的192.168.1.2是我自己的伺服器Ip,只需修改成你的docker所在伺服器ip即可
點擊連接,我們就會發現我們docker配置的容器資訊
5.SpringBoot整合Docker設定
5.1 安裝pom依賴
安裝外掛:Docker-maven-plugin
<!--docker-maven-plugin插件打包--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>ninesun@qq.com</maintainer> <!--切换到Root目录--> <workdir>/ROOT</workdir> <cmd>["java", "-version"]</cmd> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint> <!--指定DockerFile路径--> <!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址--> <dockerHost>http://192.168.1.2:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录--> <directory>${project.build.directory}</directory> <!--用于指定需要复制的jar文件--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
我所有的maven配置如下:
4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.6 com.example docker 0.0.1-SNAPSHOT docker docker 11 true true org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test <!--docker-maven-plugin插件打包--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>ninesun@qq.com</maintainer> <!--切换到Root目录--> <workdir>/ROOT</workdir> <cmd>["java", "-version"]</cmd> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint> <!--指定DockerFile路径--> <!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址--> <dockerHost>http://192.168.1.2:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录--> <directory>${project.build.directory}</directory> <!--用于指定需要复制的jar文件--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> org.springframework.boot spring-boot-maven-plugin
注意:在我們拉取插件成功之後,我們會發現目錄結構變成如下所示:
我們需要刪除一個啟動類,否則會導致打包失敗,我將DockerApplication直接刪除了
5.2 build映像
在build映像之前,我們需要先進行專案的打包操作
透過cmd進入到我們的專案目錄
#執行
mvn docker:build
出現以下訊息表示打包成功
接下來回到我們的idea,可以看到
這就是我們打包好的鏡像
docker images
也可以看到該映像的資訊
5.3 啟動映像
在我們伺服器內執行
docker run -d --name idea-docker-test -p 8089:8080 docker
註:我之所以暴露出8089端口,只要是因為8080衝突了,自己看自己的情況改就好
接下來我們訪問一下我們寫的測試介面:
可以看到已經部署成功,同時也可存取成功了
#我們可以看到在Idea裡也可看到了我們剛剛啟動成功的鏡像以及輸出的日誌
以上是idea怎麼快速實現將SpringBoot專案打包Docker映像並部署的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

要獲取 Docker 版本,您可以執行以下步驟:運行 Docker 命令“docker --version”來查看客戶端和服務器版本。對於 Mac 或 Windows,還可以通過 Docker Desktop GUI 的“版本”選項卡或“關於 Docker Desktop”菜單查看版本信息。

創建 Docker 鏡像步驟:編寫包含構建指令的 Dockerfile。在終端中構建鏡像,使用 docker build 命令。標記鏡像,使用 docker tag 命令分配名稱和標籤。

可切換到國內鏡像源,步驟如下:1. 編輯配置文件 /etc/docker/daemon.json,添加鏡像源地址;2. 保存退出後,重啟 Docker 服務 sudo systemctl restart docker,即可提升鏡像下載速度和穩定性。

查看 Docker 日誌的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令運行 /bin/sh 並查看日誌文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

在 Docker 中保存鏡像,可以使用 docker commit 命令創建新的鏡像,包含指定容器的當前狀態,語法為:docker commit [選項] 容器ID 鏡像名稱。要保存鏡像到倉庫,可以使用 docker push 命令,語法為:docker push 鏡像名稱[:標籤]。要導入已保存的鏡像,可以使用 docker pull 命令,語法為:docker pull 鏡像名稱[:標籤]。
