docker-compose基於MySQL8部署項目的實現

1.首先按照以下的路徑創建相應的文件夾

/usr/local/docker/mysql

2.然後在該目錄下創建docker-compose.yml文件並且在文件中加入以下的配置

version: '3.1'
services:
 db:
  image: mysql
  restart: always
  environment:
   MYSQL_ROOT_PASSWORD: 123456
  command:
   --default-authentication-plugin=mysql_native_password
   --character-set-server=utf8mb4
   --collation-server=utf8mb4_general_ci
   --explicit_defaults_for_timestamp=true
   --lower_case_table_names=1
   --max_allowed_packet=128M;
  ports:
   - 3306:3306
  volumes:
   - ./data:/var/lib/mysql

 adminer:
  image: adminer
  restart: always
  ports:
   - 8080:8080

3.按照以下的路徑創建相應的文件夾

/usr/local/docker/tomcat

4.在該文件夾的目錄下面創建一個docker-compose.yml並且填寫相關的配置信息(由於這裡的上面的宿主機的8080端口被占用所以這裡隻能改為其他的端口)

version: '3.1'
services:
 tomcat:
  restart: always
  image: tomcat
  container_name: tomcat
  ports:
   - 8082:8080
  volumes:
   - /usr/local/docker/tomcat:/usr/local/tomcat/webapps/ROOT
  environment:
   TZ: Asia/Shanghai

註意: 創建的目錄不同那麼上面對應的 /usr/local/docker/tomcat目錄就不能同

5.如果沒能啟動那麼可以直接用啟動命令試試

docker run -p 8082:8080 鏡像id或者鏡像名稱

6.在將項目上傳到和tomcat的同級目錄下面解壓縮然後運行就可以實現部署

說明:

一個容器可以部署一個項目,那麼是不是很奇怪,假如說我在同一臺服務器上面部署瞭三個應用一個前端的UI一個後端的Admin,一個數據庫MySQL,那麼後端要管理前端的數據,而他們的配置文件docker-compose分別為以下

admain 路徑:/usr/local/docker/tomcat

version: '3.1'
services:
 tomcat:
  restart: always
  image: tomcat
  container_name: tomcat
  ports:
   - 8082:8080
  volumes:
   - /usr/local/docker/tomcat:/usr/local/tomcat/webapps/ROOT
  environment:
   TZ: Asia/Shanghai

UI: /usr/local/docker/tomcat_ui

version: '3.1'
services:
 tomcat:
  restart: always
  image: tomcat
  container_name: tomcatui
  ports:
   - 8083:8080
  volumes:
   - /usr/local/docker/tomcat_ui:/usr/local/tomcat/webapps/ROOT
  environment:
   TZ: Asia/Shanghai~

mysql 路徑: /usr/local/docker/mysql

docekr-compose的配置

version: '3.1'
services:
 db:
  image: mysql
  restart: always
  environment:
   MYSQL_ROOT_PASSWORD: 123456
  command:
   --default-authentication-plugin=mysql_native_password
   --character-set-server=utf8mb4
   --collation-server=utf8mb4_general_ci
   --explicit_defaults_for_timestamp=true
   --lower_case_table_names=1
  ports:
   - 3306:3306
  volumes:
   - ./data:/var/lib/mysql

 adminer:
  image: adminer
  restart: always
  ports:
   - 8080:8080

後端管理前端的數據是如何做到的呢,其實者就要聯系到你部署的項目瞭,項目裡有配置一個數據連接配置如下

# JDBC
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://192.168.206.128:3306/twg?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.username=root
jdbc.password=123456
# JDBC Pool
jdbc.pool.init=1
jdbc.pool.minIdle=3
jdbc.pool.maxActive=20
# JDBC Test
jdbc.testSql=SELECT 'x' FROM DUAL

那麼這裡配置的jdbc.connectionURL=jdbc:mysql://192.168.206.128:3306/twg?useUnicode=true&characterEncoding=utf-8&useSSL=false就是關鍵瞭,其實就是通過這個ip來進行數據管理的。這個ip是mysql部署的服務器ip,那麼部署的項目連接配置都是指向的這個ip,這樣也就讓後臺獲得瞭這個數據庫的數據,直接管理瞭前臺的數據。而且數據庫可視化界面比如Navicat和SQLyog等用數據庫部署的IP比如上面這個IP就可以輕松的對服務器數據庫的數據進行方便的管理。

如果需要停止某個服務,可以直接在對應那個服務的文件夾下和docker-compose同級的目錄下面用docker-compose down 即可直接停止某個服務

到此這篇關於docker-compose基於MySQL8部署項目的實現的文章就介紹到這瞭,更多相關docker-compose部署MySQL8內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: