spring-boot項目的docker集成化部署(二)--springboot的mysql項目

spring-boot項目的docker集成化部署(二)--springboot的mysql項目 [toc]html

補充使用maven構建操做流程

一、配置基本的環境

全局工具配置—配置Java、maven、git基本工具(注意:按照本身的路徑安裝便可) mysql

配置Jenkins基本環境

二、安裝maven插件

插件管理—可選插件下載找到:Maven Integration plugin;等待安裝成功後,就能夠在新建maven的Jenkins工程。git

三、構Jenkins自動構建工程

  • 點擊「肯定」後填寫源碼管理:

gitee.com/will-we/spr…github

  • 填寫構建環境,填寫的maven命令和eclipse相似不用添「mvn」;最後保存工程並開始構建工程
  • 執行maven命令
    clean package docker:build
    複製代碼

四、手動部署dockers鏡像

構建成功後,會看到以前的同樣的工程鏡像。執行以下命令spring

docker run --name= springboot/spring-boot_docker_demo -p 8081:8080 -t srping-demo
複製代碼

基於mysql的Springboot的docker工程

  1. 編寫開發工程,這裏使簡單CRUD爲例;具體項目參考以下路徑:

gitee.com/will-we/spr…
#須要注意:這裏使用的多環境配置。sql

Springboot多環境配置

  1. 安裝以前的構建步驟開始從新構建doker鏡像 docker

    查看docker鏡像

  2. 開始手動部署,操做命令以下數據庫

啓動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 
複製代碼

啓動Springboot項目
springboot運行結果

#補充docker命令說明:
-v 主機的目錄做爲容器的數據卷
-e 設置啓動容器是的環境變量
-t 分配terminal終端
--name 設置容器名稱
-p  端口映射,格式爲:主機(宿主)端口:容器端口
-link 添加連接到另外一個容器
複製代碼

重要問題記錄

docker容器的持久化數據問題:

關於docker數據持久化的三種方式:springboot

  • volumes,
  • bind mounts
  • tmpfs mounts

這裏使用bind mounts的方式;具體的差別和介紹參考以下連接bash

Springboot程序連接出現錯誤,關於應用使用「mysql」鏡像的,網絡鏈接問題

Springboot鏈接mysql出錯

在使用localhost:3306在docker容器中出現以下錯誤:這是因爲docker容器隨機映射致使。
使用–link以後,docker會在子容器(這裏的spring boot容器)的/etc/hosts中將父容器(這裏的mysql容器)與父容器的ip地址綁定,那麼咱們就能夠mysql:3306來訪問數據庫了。也就是把application.properties中數據庫url改成;以下命令經過環境變量配置:

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

docker啓動是出現異常

  1. 問題分析 可能緣由因爲在重啓了網絡配置影響到了docker的端口映射;從而致使如上的緣由。
  2. 解決方案 #從新啓動docker的服務。
Systemctl restart docker
複製代碼

啓動mysql容器時,沒法使用遠程鏈接

鏈接mysql出錯
mysql的版本

  1. 緣由分析: MySQL鏈接2059錯誤,修改加密規則 大概的意思是;安裝的mysql的版本新版本mysql8.0;修改了加密方式致使。
  2. 解決方式 方案一:安裝mysql5.7版本
docker run -d \
    --name mybatis-mysql \
	-p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=123456 \
    mysql:5.7
複製代碼
相關文章
相關標籤/搜索