经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Docker » 查看文章
docker-compose基于MySQL8部署项目的实现
来源:jb51  时间:2021/3/8 12:40:41  对本文有异议

1.首先按照以下的路径创建相应的文件夹

  1. /usr/local/docker/mysql

2.然后在该目录下创建docker-compose.yml文件并且在文件中加入以下的配置

  1. version: '3.1'
  2. services:
  3. db:
  4. image: mysql
  5. restart: always
  6. environment:
  7. MYSQL_ROOT_PASSWORD: 123456
  8. command:
  9. --default-authentication-plugin=mysql_native_password
  10. --character-set-server=utf8mb4
  11. --collation-server=utf8mb4_general_ci
  12. --explicit_defaults_for_timestamp=true
  13. --lower_case_table_names=1
  14. --max_allowed_packet=128M;
  15. ports:
  16. - 3306:3306
  17. volumes:
  18. - ./data:/var/lib/mysql
  19.  
  20. adminer:
  21. image: adminer
  22. restart: always
  23. ports:
  24. - 8080:8080

3.按照以下的路径创建相应的文件夹

  1. /usr/local/docker/tomcat

4.在该文件夹的目录下面创建一个docker-compose.yml并且填写相关的配置信息(由于这里的上面的宿主机的8080端口被占用所以这里只能改为其他的端口)

  1. version: '3.1'
  2. services:
  3. tomcat:
  4. restart: always
  5. image: tomcat
  6. container_name: tomcat
  7. ports:
  8. - 8082:8080
  9. volumes:
  10. - /usr/local/docker/tomcat:/usr/local/tomcat/webapps/ROOT
  11. environment:
  12. TZ: Asia/Shanghai

注意: 创建的目录不同那么上面对应的 /usr/local/docker/tomcat目录就不能同

5.如果没能启动那么可以直接用启动命令试试

  1. docker run -p 8082:8080 镜像id或者镜像名称

6.在将项目上传到和tomcat的同级目录下面解压缩然后运行就可以实现部署

说明:

一个容器可以部署一个项目,那么是不是很奇怪,假如说我在同一台服务器上面部署了三个应用一个前端的UI一个后端的Admin,一个数据库MySQL,那么后端要管理前端的数据,而他们的配置文件docker-compose分别为以下

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

  1. version: '3.1'
  2. services:
  3. tomcat:
  4. restart: always
  5. image: tomcat
  6. container_name: tomcat
  7. ports:
  8. - 8082:8080
  9. volumes:
  10. - /usr/local/docker/tomcat:/usr/local/tomcat/webapps/ROOT
  11. environment:
  12. TZ: Asia/Shanghai

UI: /usr/local/docker/tomcat_ui

  1. version: '3.1'
  2. services:
  3. tomcat:
  4. restart: always
  5. image: tomcat
  6. container_name: tomcatui
  7. ports:
  8. - 8083:8080
  9. volumes:
  10. - /usr/local/docker/tomcat_ui:/usr/local/tomcat/webapps/ROOT
  11. environment:
  12. TZ: Asia/Shanghai~

mysql 路径: /usr/local/docker/mysql

docekr-compose的配置

  1. version: '3.1'
  2. services:
  3. db:
  4. image: mysql
  5. restart: always
  6. environment:
  7. MYSQL_ROOT_PASSWORD: 123456
  8. command:
  9. --default-authentication-plugin=mysql_native_password
  10. --character-set-server=utf8mb4
  11. --collation-server=utf8mb4_general_ci
  12. --explicit_defaults_for_timestamp=true
  13. --lower_case_table_names=1
  14. ports:
  15. - 3306:3306
  16. volumes:
  17. - ./data:/var/lib/mysql
  18.  
  19. adminer:
  20. image: adminer
  21. restart: always
  22. ports:
  23. - 8080:8080

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

  1. # JDBC
  2. jdbc.driverClass=com.mysql.jdbc.Driver
  3. jdbc.connectionURL=jdbc:mysql://192.168.206.128:3306/twg?useUnicode=true&characterEncoding=utf-8&useSSL=false
  4. jdbc.username=root
  5. jdbc.password=123456
  6. # JDBC Pool
  7. jdbc.pool.init=1
  8. jdbc.pool.minIdle=3
  9. jdbc.pool.maxActive=20
  10. # JDBC Test
  11. 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内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号