蘑菇博客容器化部署指南:Portainer可视化Docker管理
【免费下载链接】mogu_blog_v2蘑菇博客(MoguBlog),一个基于微服务架构的前后端分离博客系统。Web端使用Vue + Element , 移动端使用uniapp和ColorUI。后端使用Spring cloud + Spring boot + mybatis-plus进行开发,使用 Jwt + Spring Security做登录验证和权限校验,使用ElasticSearch和Solr作为全文检索服务,使用Github Actions完成博客的持续集成,使用ELK收集博客日志,文件支持上传七牛云和Minio,支持Docker Compose脚本一键部署。项目地址: https://gitcode.com/gh_mirrors/mo/mogu_blog_v2
想要快速部署一个功能完整的个人博客系统吗?蘑菇博客(MoguBlog)基于微服务架构的前后端分离设计,结合Docker容器化部署和Portainer可视化Docker管理,让博客搭建变得前所未有的简单!🚀 本文将带你一步步完成蘑菇博客的容器化部署,即使是Docker新手也能轻松上手。
为什么选择蘑菇博客容器化部署?
蘑菇博客是一个基于Spring Cloud + Vue的现代化博客系统,传统的部署方式需要配置多个微服务组件,过程复杂耗时。而Docker Compose容器化部署方案将这一过程简化到极致,配合Portainer可视化Docker管理工具,让你能够:
- 🚀一键部署所有微服务组件
- 📊可视化监控容器运行状态
- 🔧图形化管理Docker资源
- 📈实时查看日志和性能指标
- 🛠️轻松扩展和更新服务
准备工作与环境要求
系统要求
- Linux服务器(推荐Ubuntu 20.04+或CentOS 7+)
- Docker 20.10.0+
- Docker Compose 1.29.0+
- 最低配置:2核4G内存(推荐4核8G)
获取蘑菇博客源码
git clone https://gitcode.com/gh_mirrors/mo/mogu_blog_v2 cd mogu_blog_v2Docker Compose一键部署蘑菇博客
蘑菇博客提供了完整的Docker Compose配置文件,位于doc/docker-compose/yaml/目录下,包含了所有必要的微服务组件:
核心服务组件
蘑菇博客容器化部署包含以下关键服务:
| 服务名称 | 端口 | 功能描述 |
|---|---|---|
| mogu-admin | 8601 | 后台管理API服务 |
| mogu-web | 8602 | 前台门户API服务 |
| mogu-picture | 8603 | 图片上传服务 |
| mogu-search | 8605 | 搜索服务(ElasticSearch/Solr) |
| mysql | 3306 | 数据库服务 |
| redis | 6379 | 缓存服务 |
| nacos | 8848 | 服务注册与配置中心 |
| rabbitmq | 5672 | 消息队列服务 |
| nginx | 80 | 反向代理服务 |
一键启动所有服务
进入Docker Compose配置目录,执行启动命令:
cd doc/docker-compose docker-compose up -d这个命令会自动拉取所有需要的Docker镜像,并启动完整的蘑菇博客系统。等待几分钟后,你就可以通过浏览器访问博客了!
Portainer可视化Docker管理
Portainer是什么?
Portainer是一个开源的Docker管理界面,提供直观的Web界面来管理Docker容器、镜像、网络和卷。蘑菇博客的Docker Compose配置中已经包含了Portainer服务。
Portainer配置文件分析
查看doc/docker-compose/yaml/portainer.yml配置文件:
version: '3.1' services: portainer: image: registry.cn-shenzhen.aliyuncs.com/mogublog/portainer container_name: portainer ports: - 9000:9000 - 8000:8000 volumes: - /var/run/docker.sock:/var/run/docker.sock - ../data/portainer_data/data:/data - ../data/portainer_data/public:/publicPortainer核心功能
- 容器管理- 启动、停止、重启、删除容器
- 镜像管理- 拉取、构建、推送镜像
- 网络管理- 创建和管理Docker网络
- 卷管理- 管理数据持久化卷
- 堆栈管理- 管理Docker Compose应用
- 监控统计- 实时查看资源使用情况
访问Portainer管理界面
首次访问设置
- 在浏览器中访问:
http://你的服务器IP:9000 - 创建管理员账号和密码
- 连接到本地Docker环境
查看蘑菇博客容器状态
登录Portainer后,你可以看到所有正在运行的蘑菇博客容器:
蘑菇博客管理后台体验
登录管理后台
- 访问地址:
http://你的服务器IP:8601 - 默认账号:admin
- 默认密码:mogu2018
主要管理功能
蘑菇博客管理后台提供了丰富的功能模块:
- 📝博客管理- 文章发布、分类、标签管理
- 🖼️图片管理- 支持本地和七牛云存储
- 👥用户管理- 用户权限和角色配置
- 📊数据统计- 访问量、评论等数据可视化
- ⚙️系统配置- 博客基础设置和SEO优化
常见问题与解决方案
Q1: 容器启动失败怎么办?
解决方法:检查端口冲突,确保所需端口未被占用。可以通过Portainer查看容器日志定位问题。
Q2: 如何修改默认配置?
解决方法:修改doc/docker-compose/config/目录下的配置文件,然后重启相关容器。
Q3: 如何备份数据?
解决方法:使用Portainer的卷管理功能备份data目录,或直接备份doc/docker-compose/data/目录。
Q4: 如何升级版本?
解决方法:拉取最新镜像后,在Portainer中重新部署容器,或使用Docker Compose更新命令。
高级配置与优化
自定义域名配置
修改Nginx配置文件,添加自定义域名:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://vue_mogu_web:9528; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }数据持久化配置
蘑菇博客的数据都存储在doc/docker-compose/data/目录下,确保数据安全:
mysql_data/- MySQL数据库数据redis_data/- Redis缓存数据mogu_data/- 博客上传的文件portainer_data/- Portainer配置数据
性能监控与告警
通过Portainer可以实时监控容器资源使用情况:
安全建议
1. 修改默认密码
部署完成后,务必修改以下服务的默认密码:
- MySQL数据库:root/mogu2018
- Redis缓存:mogu2018
- 管理后台:admin/mogu2018
- RabbitMQ:admin/mogu2018
2. 配置防火墙
只开放必要的端口:
# 开放必要端口 sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS sudo ufw allow 9000/tcp # Portainer sudo ufw enable3. 定期备份
使用crontab设置定时备份:
# 每天凌晨2点备份 0 2 * * * /path/to/backup_script.sh总结
通过Docker Compose容器化部署和Portainer可视化Docker管理,蘑菇博客的部署和管理变得异常简单。这种方案不仅降低了部署门槛,还提供了强大的运维监控能力。
核心优势总结:
- ✅快速部署- 一条命令完成所有服务部署
- ✅可视化运维- Portainer提供直观的管理界面
- ✅资源隔离- 每个服务独立容器,互不干扰
- ✅易于扩展- 水平扩展和垂直扩展都很方便
- ✅数据安全- 数据持久化存储,避免丢失
现在就开始你的蘑菇博客之旅吧!只需一台云服务器,按照本文指南操作,30分钟内就能拥有一个功能完整的个人博客系统。🚀
💡小贴士:如果在部署过程中遇到问题,可以参考蘑菇博客官方文档或社区讨论区获取帮助。
【免费下载链接】mogu_blog_v2蘑菇博客(MoguBlog),一个基于微服务架构的前后端分离博客系统。Web端使用Vue + Element , 移动端使用uniapp和ColorUI。后端使用Spring cloud + Spring boot + mybatis-plus进行开发,使用 Jwt + Spring Security做登录验证和权限校验,使用ElasticSearch和Solr作为全文检索服务,使用Github Actions完成博客的持续集成,使用ELK收集博客日志,文件支持上传七牛云和Minio,支持Docker Compose脚本一键部署。项目地址: https://gitcode.com/gh_mirrors/mo/mogu_blog_v2
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考