✅Linux 基于 Docker 容器化部署上线项目(球友YaeMivo提供)
选中新版正文中的对应文字,然后点“定位到这里”。
写在最前面 : 对本教程有任何疑问都会帮忙解决,
但请在进行提问之前确定自己按照教程来却出现了在自身能力之外无法解决的问题.
- 先在目前收录的问题里找找有没有自己碰到的问题 🍑0. PmHub问题汇总 密码:xy6l (如果没改的话)
- 加我VX :
Roseovoi(一定要备注来意!) 远程帮你调试解决 - 提前准备 Todesk 远程工具, 电脑是Mac记得备注 (远程Mac好难操作...)
Linux 基于 Docker 容器化部署Pmhub项目.md
使用 Docker Compose 搭建项目环境,简化项目部署过程,降低环境差异性问题,提升资源隔离安全性
线下爱你千万遍,不如线上见一面 (哈哈哈, 这句话戳到我了~🤣)
PmHub项目源码地址:
1. 前置准备条件
- 全部的中间件我都是基于
Linux的Docker部署的, 为了更好的管理 - 不习惯用
XShell等工具可以装个可视化管理工具, 虽然有一定的侵入性... - 这里我用的可视化管理工具是
portainer.io, 部署的容器都很容易管理

- 强调一点, 这里部署项目仅供学习参考, 不要上生产环境!!
- 部署的中间件我使用的基本都是默认端口, 很容易被别人扫的!!
- 还有就是服务器上的中间件密码设置的复杂一些, 最好是大小写字母数字符号组合
a. ( 必做 )MYSQL环境配置
- 拉取镜像
docker pull mysql:8.0.33
- 拷贝文件
mkdir -p /data/mysql/{conf,logs,data}
docker run -p 3306:3306 --name mysql -d mysql:8.0.33
docker cp mysql:/var/log/mysql /data/mysql
docker cp mysql:/var/lib/mysql /data/mysql
docker cp mysql:/etc/mysql/conf.d /data/mysql
chmod 777 /data/mysql/{conf,logs,data}
docker rm -f mysql
- 创建容器
docker run -p 3306:3306 --name mysql \
-v /data/mysql/logs:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql/conf.d \
-e TZ=Asia/Shanghai --restart=always \
-e MYSQL_ROOT_PASSWORD=ovo@Knight \
-d mysql:8.0.33
- 连接数据库

- 将SQL导入到服务器的数据库中

b. ( 必做 )Redis环境配置
- 拉取镜像
docker pull redis:7.0.12
- 拷贝文件
mkdir -p /data/redis/{conf,data,log}
touch /data/redis/log/redis.log
docker run -p 6379:6379 --name redis -d redis:7.0.12
docker cp redis:/data /data/redis
docker cp redis:/etc/redis.log /data/redis/log
docker cp redis:/etc/redis/redis.conf /data/redis/conf
chmod -R 777 /data/redis/conf/redis.conf /data/redis/log/redis.log /data/redis/data
docker rm -f redis
- 创建容器
docker run --name redis \
-p 6379:6379 --restart=always \
-v /data/redis/data:/data \
-v /data/redis/log/redis.log:/etc/redis.log \
-v /data/redis/conf:/etc/redis/redis.conf \
-d redis:7.0.12 redis-server /etc/redis/redis.conf
- 用测试工具查看是否成功部署Redis

c. ( 必做 )Nacos环境配置
- 拉取镜像
docker pull nacos/nacos-server:v2.2.3
- 拷贝文件
mkdir -p /data/nacos/{conf,logs,data}
docker run -p 8848:8848 --name nacos -d nacos/nacos-server:v2.2.3
docker cp nacos:/home/nacos/conf /data/nacos
docker cp nacos:/home/nacos/data /data/nacos
docker cp nacos:/home/nacos/logs /data/nacos
chmod 777 /data/nacos/{conf,logs,data}
docker rm -f nacos
- 修改配置文件
application.properties, 新版本 Nacos 默认不开启鉴权 - 直接复制即可, 需要修改的地方只有最上面的 MySQL 数据库连接换成你自己的IP和密码
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.100.100:3306/pmhub-nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
# 当服务为空时,是否自动清理
nacos.naming.empty-service.auto-clean=true
# 空服务清理的初始延迟时间(毫秒)
nacos.naming.empty-service.clean.initial-delay-ms=50000
# 空服务清理的周期时间(毫秒)
nacos.naming.empty-service.clean.period-time-ms=30000
# 允许暴露的 Web 端点(用于监控和管理)
management.endpoints.web.exposure.include=*
# 禁用 Elastic 的指标导出
management.metrics.export.elastic.enabled=false
# 禁用 Influx 的指标导出
management.metrics.export.influx.enabled=false
# 启用 Tomcat 的访问日志
server.tomcat.accesslog.enabled=true
# Tomcat 访问日志的格式
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
# 设置 Tomcat 的基目录
server.tomcat.basedir=file:.
# 定义忽略安全验证的 URL 列表
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
# 禁用 Istio MCP 服务器功能
nacos.istio.mcp.server.enabled=false
# 是否开启鉴权功能
nacos.core.auth.enabled=true
# 鉴权类型
nacos.core.auth.system.type=nacos
# 默认鉴权插件用于生成用户登陆临时accessToken所使用的密钥,使用默认值有安全风险
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey01234567890123456789012112345678901234567890123456789012345678
# 用户登陆临时accessToken的过期时间,2.1.0及以上版本使用
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
# 是否使用useragent白名单,主要用于适配老版本升级,置为true时有安全风险
nacos.core.auth.enable.userAgentAuthWhite=false
# 用于替换useragent白名单的身份识别key,使用默认值有安全风险(2.2.1后无默认值)
nacos.core.auth.server.identity.key=serverIdentity-laigeoffer-pmhub
# 用于替换useragent白名单的身份识别value,使用默认值有安全风险
nacos.core.auth.server.identity.value=security-laigeoffer-pmhub-666
# 启用 Nacos 的核心认证缓存机制
nacos.core.auth.caching.enabled=true
- 创建容器
MYSQL_SERVICE_HOST=192.168.100.100修改为自己的IPMYSQL_SERVICE_PASSWORD=ovo@Knight修改为自己的MYSQL密码- 云服务器部署Nacos对应的8848/9848/9849三个端口都要开放 !
docker run -d \
-e MODE=standalone \
--privileged=true \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.100.100 \...未能定位到原文的划线
已加入星球,可直接知识星球授权登录
二哥编程星球目前包含:
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复