docker怎么搭建nacos+nginx+mysql+redis+springboot项目
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天小编给大家分享一下docker怎么搭建nacos+nginx+mysql+redis+springboot项目的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章
千家信息网最后更新 2026年11月03日docker怎么搭建nacos+nginx+mysql+redis+springboot项目
今天小编给大家分享一下docker怎么搭建nacos+nginx+mysql+redis+springboot项目的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
请提前安装docker和docker-compose并自行配置镜像加速。 提前说明:我的整个项目搭建其实是分的两次,第一次部署时只有:nginx+mysql+redis+springboot项目,nacos是后期添加进去自娱自乐的。
A.docker-compose.yml文件
version: "3"services: nginx: # 服务名称,用户自定义 image: nginx:latest # 镜像版本 ports: - 80:80 # 暴露端口 volumes: # 挂载 - /root/nginx/html:/usr/share/nginx/html - /root/nginx/nginx.conf:/etc/nginx/nginx.conf privileged: true # 这个必须要,解决nginx的文件调用的权限问题 mysql: image: mysql:5.7.27 ports: - 3306:3306 environment: # 指定用户root的密码 - MYSQL_ROOT_PASSWORD= redis: ports: - 6379:6379 image: redis:latest vueblog: image: vueblog:latest build: . # 表示以当前目录下的Dockerfile开始构建镜像 ports: - 81:81 depends_on: # 依赖与mysql、redis,其实可以不填,默认已经表示可以 - mysql - redis nacos1: hostname: nacos1 container_name: nacos1 image: nacos/nacos-server:latest volumes: # 需要添加mysql8的插件 #- ./nacos/plugins/mysql/:/home/nacos/plugins/mysql/ # 把日志文件映射出来 - /root/nacos1:/home/nacos/logs # 把配置文件映射出来 - /root/nacos1/custom.properties:/home/nacos/init.d/custom.properties environment: # 设置环境变量,相当于docker run命令中的-e - JVM_XMS=512m - JVM_XMX=512m - JVM_XMN=128m #- MODE=standalone #单机版 ports: - "8848:8848" env_file: # 集群配置文件 - /root/nacos1/nacos-hostname.env restart: always depends_on: - mysql
B.springboot配置(自己的项目)
配置中的mysql和redis配置都是用的服务名而不是ip地址
server: port: 81spring: servlet: multipart: max-file-size: 10MB max-request-size: 10MB profiles: active: dev # mysql 配置 datasource: url: jdbc:mysql://mysql:3306/blog4?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8 username: password: # schema: classpath:springbootsecurityauth.sql sql-script-encoding: utf-8 initialization-mode: always driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource # 初始化大小,最小,最大 initialSize: 1 minIdle: 3 maxActive: 20 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 30000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false # 打开PSCache,并且指定每个连接上PSCache的大小 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 ,slf4j filters: stat,wall,slf4j # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 redis: database: 6 host: redis port: 6379 timeout: 5000s # 连接超时时长(毫秒) jedis: pool: max-active: 20 #连接池最大连接数(使用负值表示没有限制) max-idle: 8 #连接池中的最大空闲连接 max-wait: -1s #连接池最大阻塞等待时间(使用负值表示没有限制) min-idle: 0 #连接池中的最小空闲连接 password: #rootroot
C.Dockerfile文件
FROM java:8EXPOSE 81ADD vueblog.jar app.jarRUN bash -c 'touch /app.jar'ENTRYPOINT ["java", "-jar", "/app.jar"]
D.打包springboot项目并命名为配置中的服务名
E.在对应目录下创建文件夹或文件
- /root/nginx/html
- /root/nginx/nginx.conf
#user root;worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #这里配置nacos的ip:端口,因为nginx和nacos在同一个网络下,这里可以用服务名访问 upstream nacos { server nacos1:8848 weight=1 max_fails=2 fail_timeout=10s; #server nacos2:8848 weight=1 max_fails=2 fail_timeout=10s; #server nacos3:8848 weight=1 max_fails=2 fail_timeout=10s; } server { listen 80; server_name localhost; location / { root /usr/share/nginx/html/front; try_files $uri $uri/ /index.html last; # 别忘了这个哈 index index.html index.htm; } location /admin { alias /usr/share/nginx/html/admin; expires 1d; index index.html; autoindex on; } location /nacos { proxy_pass http://nacos; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; add_header X-Cache $upstream_cache_status; add_header Cache-Control no-cache; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}- /root/nacos1
# 把配置文件映射出来
- /root/nacos1/custom.properties
#spring.security.enabled=false#management.security=false#security.basic.enabled=false#nacos.security.ignore.urls=/**#management.metrics.export.elastic.host=http://localhost:9200# metrics for prometheusmanagement.endpoints.web.exposure.include=*# metrics for elastic search#management.metrics.export.elastic.enabled=false#management.metrics.export.elastic.host=http://localhost:9200# metrics for influx#management.metrics.export.influx.enabled=false#management.metrics.export.influx.db=springboot#management.metrics.export.influx.uri=http://localhost:8086#management.metrics.export.influx.auto-create-db=true#management.metrics.export.influx.consistency=one#management.metrics.export.influx.compressed=true
- /root/nacos1/nacos-hostname.env
配置nacos的数据库信息
#nacos dev envPREFER_HOST_MODE=hostnameNACOS_SERVERS=nacos1:8848MYSQL_SERVICE_HOST=mysqlMYSQL_SERVICE_DB_NAME=nacosMYSQL_SERVICE_PORT=3306MYSQL_SERVICE_USER=MYSQL_SERVICE_PASSWORD=JVM_XMS=512mJVM_XMX=512mJVM_XMN=256mJVM_MS=64mJVM_MMS=128m
最后的目录结构
先把mysql实例运行起来(千万不要直接docker-compose up -d把所有的实例都运行起来)
docker-compose up -d mysql
F. 由于我的nacos是后期添加的,所以可以提前在mysql容器中添加好nacos数据库再启动(如果你没有数据库请提前添加)
启动
docker-compose up
停止
docker-compose down
以上就是"docker怎么搭建nacos+nginx+mysql+redis+springboot项目"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
配置
文件
项目
最大
知识
篇文章
服务
最小
数据
数据库
时间
目录
空闲
镜像
内容
单位
大小
实例
用户
端口
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网是第几次科技革命的成果
互联网 科技
智网互联网科技
天津摩尔互联网科技
唐信互联网科技 大连
亿人帮互联网科技
深圳卡尔迅互联网科技有限公司怎么样
滨湖区互联网智能科技产品供应
佩信高科技互联网
济南华为互联网科技产业总部基地
新华互联网科技2019
中国科技互联网公司收入
北京华百购互联网科技有限公司
顶级互联网科技成果有哪些
现代互联网科技股
米聚互联网科技南京有限公司排面
如何创新互联网科技
银行科技岗属于互联网吗
富国互联网金融科技混合基金
新氧科技和美国互联网有关系吗
今日互联网科技
互联网医疗科技
顺玮阁互联网科技
互联网系的金融科技公司
互联网对科技的发展
广州市恰铎互联网科技有限公司
上海科技产业互联网平台
互联网科技年终奖
互联网领先科技活动
知域互联网科技有限公司官网