spring-boot項目的docker集成化部署(二)--springboot的mysql項目
[toc]
補充使用maven構(gòu)建操作流程
1秋泳、配置基本的環(huán)境
全局工具配置—配置Java揩徊、maven盛卡、git基本工具(注意:按照自己的路徑安裝即可)
2果正、安裝maven插件
插件管理—可選插件下載找到:Maven Integration plugin
罐监;等待安裝成功后,就可以在新建maven的Jenkins工程牍白。
3戒洼、構(gòu)Jenkins自動構(gòu)建工程
- 點擊“確定”后填寫源碼管理:
- 填寫構(gòu)建環(huán)境,填寫的maven命令和eclipse類似不用添“mvn”枢劝;最后保存工程并開始構(gòu)建工程
-
clean package docker:build
4井联、手動部署dockers鏡像
構(gòu)建成功后,會看到之前的一樣的工程鏡像您旁。執(zhí)行如下命令
docker run --name= springboot/spring-boot_docker_demo -p 8081:8080 -t srping-demo
基于mysql的Springboot的docker工程
- 編寫開發(fā)工程烙常,這里使簡單
CRUD
為例;具體項目參考如下路徑:
https://gitee.com/will-we/spring-boot_docker_demo/tree/efa2989ba61bf4857559943adf697253e472526d/
需要注意:這里使用的多環(huán)境配置鹤盒。
-
安裝之前的構(gòu)建步驟開始重新構(gòu)建doker鏡像
開始手動部署蚕脏,操作命令如下
啟動mysql容器
docker run -d \
--name mybatis-mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /home/weir/programs/data/mysql/springoot-mysql:/var/lib/mysql
mysql:5.7
# 運行Springboot的項目
docker run -it \
--name demo-springboot-docker \
--link mybatis-mysql:mybatis-mysql \
-p 8088:8081 \
-e DATABASE_HOST=mybatis-mysql \
-e DATABASE_PORT=3306 \
-e DATABASE_NAME=db_mydb \
-e DATABASE_USER=root \
-e DATABASE_PASSWORD=root \
springboot/spring-boot_docker_demo
#補充docker命令說明:
-v 主機的目錄作為容器的數(shù)據(jù)卷
-e 設(shè)置啟動容器是的環(huán)境變量
-t 分配terminal終端
--name 設(shè)置容器名稱
-p 端口映射,格式為:主機(宿主)端口:容器端口
-link 添加鏈接到另一個容器
重要問題記錄
docker容器的持久化數(shù)據(jù)問題:
關(guān)于docker數(shù)據(jù)持久化的三種方式:
- volumes侦锯,
- bind mounts
- tmpfs mounts
這里使用bind mounts的方式蝗锥;具體的差異和介紹參考如下鏈接
Springboot程序鏈接出現(xiàn)錯誤率触,關(guān)于應(yīng)用使用“mysql”鏡像的终议,網(wǎng)絡(luò)連接問題
在使用localhost:3306在docker容器中出現(xiàn)如下錯誤:這是由于docker容器隨機映射導(dǎo)致。
使用–link之后,docker會在子容器(這里的spring boot容器)的/etc/hosts中將父容器(這里的mysql容器)與父容器的ip地址綁定穴张,那么我們就可以mysql:3306來訪問數(shù)據(jù)庫了细燎。也就是把application.properties中數(shù)據(jù)庫url改為;如下命令通過環(huán)境變量配置:
docker run -it \
--name demo-springboot-docker \
--link mybatis-mysql:mybatis-mysql \
-p 8088:8081 \
-e DATABASE_HOST=mybatis-mysql \
-e DATABASE_PORT=3306 \
-e DATABASE_NAME=db_mydb \
-e DATABASE_USER=root \
-e DATABASE_PASSWORD=root \
springboot/spring-boot_docker_demo
docker端口映射或啟動容器時報錯Error response from daemon: driver failed programming external connectivity on endpoint quirky
- 問題分析
可能原因由于在重啟了網(wǎng)絡(luò)配置影響到了docker的端口映射皂甘;從而導(dǎo)致如上的原因玻驻。 - 解決方案
重新啟動docker的服務(wù)。
Systemctl restart docker
啟動mysql容器時偿枕,無法使用遠(yuǎn)程連接
- 原因分析:
MySQL連接2059錯誤璧瞬,修改加密規(guī)則
大概的意思是;安裝的mysql的版本新版本mysql8.0渐夸;修改了加密方式導(dǎo)致嗤锉。 - 解決方式
方案一:安裝mysql5.7版本
docker run -d \
--name mybatis-mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7