網站首頁 編程語言 正文
一、前置條件
linux下裝好docker并啟動
1.使用國內 daocloud 一鍵安裝命令
curl -sSL https://get.daocloud.io/docker | sh
2.啟動docker
systemctl start docker.service
二、部署方法
1.開放遠程部署端口
<1>修改 docker 的配置文件 /lib/systemd/system/docker.service
<2>在 ExecStart 配置項上增加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
<3>保存退出
<4>重新加載配置文件
systemctl daemon-reload
<5>重啟docker
systemctl restart docker.service
2.微服務pom文件新增插件配置
project標簽下加入如下配置
<build>
<finalName>app</finalName>
<plugins>
<!-- maven打包springboot必備依賴 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- DockerMaven插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<!-- imageName標簽內不可以有大寫字母 -->
<imageName>distribute-search/${project.artifactId}</imageName>
<!-- OpenJDK Java 11 + Maven 3.6 + Python 3.8 + pip 21 + node 16 + npm 7 + Gradle 6 -->
<baseImage>openkbs/jdk11-mvn-py3</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://192.168.6.128:2375</dockerHost>
<forceTags>true</forceTags>
</configuration>
</plugin>
</plugins>
</build>
ps:
imageName:打包后的docker鏡像名
baseImage:基礎鏡像,相當于 Dockerfile 中的 FROM
entryPoint:jar包啟動命令
targetPath:jar包上傳位置
directory:jar包上傳目錄,缺省時為 targetPath
include:jar包名
dockerHost:jar包上傳到哪臺機器
forceTags:是否覆蓋機器上的同名鏡像
3.修改application文件
將涉及到ip地址的配置修改為部署后的機器ip,沒有就跳過
4.打包上傳并創建鏡像
在微服務根目錄下執行此命令
mvn clean package -DskipTests docker:build
ps:-DskipTests 打包時跳過測試
打包成功
docker images 查看結果
5.啟動容器
# docker run --name <容器名> -p 80:80 -d <鏡像名>
docker run --name eureka -p 9999:9999 -d distribute-search/eureka-server
docker ps 查看結果
訪問微服務
三、總結
將Dockerfile寫在pom中方便項目管理,將微服務的 打包、上傳、鏡像創建操作 整合到一條命令中執行
原文鏈接:https://blog.csdn.net/weixin_43721000/article/details/124064973
相關推薦
- 2022-08-21 python深度學習tensorflow入門基礎教程示例_python
- 2022-11-22 GoLang?channel使用介紹_Golang
- 2022-10-06 uwsgi啟動django項目的實現步驟_python
- 2024-03-02 【JQuery】Ajax 參數為數組 的方法
- 2022-07-18 linux系統安全和應用
- 2022-12-23 Kubernetes?權限管理認證鑒權詳解_云其它
- 2022-08-13 Flutter實現不同縮放動畫效果詳解_Android
- 2022-02-10 linux后臺運行任務命令(nohup: 忽略輸入并把輸出追加到“nohup.out“)
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支