您当前的位置:首页 > 网站建设 > 网站维护
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery |

docker-compose基于MySQL8部署项目的实现

51自学网 2022-07-04 11:34:00
  网站维护

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

后端管理前端的数据是如何做到的呢,其实者就要联系到你部署的项目了,项目里有配置一个数据连接配置如下

# JDBCjdbc.driverClass=com.mysql.jdbc.Driverjdbc.connectionURL=jdbc:mysql://192.168.206.128:3306/twg?useUnicode=true&characterEncoding=utf-8&useSSL=falsejdbc.username=rootjdbc.password=123456# JDBC Pooljdbc.pool.init=1jdbc.pool.minIdle=3jdbc.pool.maxActive=20# JDBC Testjdbc.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 即可直接停止某个服务


下载地址:
Nginx之Http模块系列之autoindex模块的具体使用
Docker常用命令详解
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1