Docker Compose 部署
⚡ 一键启动(推荐)
curl -sSO https://surveyking.cn/surveyking-docker/setup.sh && bash setup.sh
服务管理
启动服务
cd surveyking
docker compose up -d
停止服务
docker compose down
重启服务
# 重启所有服务
docker compose restart
# 重启特定服务
docker compose restart surveyking-app
docker compose restart surveyking-mysql
查看服务状态
docker compose ps
日志和监控
查看日志
# 查看所有服务日志
docker compose logs
# 查看特定服务日志
docker compose logs surveyking-app
docker compose logs surveyking-mysql
# 实时查看日志
docker compose logs -f surveyking-app
错误日志位置
- 应用日志:
docker compose logs surveyking-app
- 数据库日志:
docker compose logs surveyking-mysql
- 容器内应用日志:
/app/logs/
目录
数据库管理
查看 MySQL 密码
# 查看生成的密码(格式:MYSQL_PASSWORD=随机密码)
cat ./surveyking/.env | grep MYSQL_PASSWORD
连接数据库
# 进入 MySQL 容器
docker compose exec surveyking-mysql mysql -u surveyking -p
# 从外部连接数据库
mysql -h 127.0.0.1 -P 3306 -u surveyking -p surveyking
数据库信息
- 数据库名:
surveyking
- 用户名:
surveyking
- 端口:
3306
(可通过SK_MYSQL_PORT
自定义) - 密码:查看
surveyking/.env
文件中的MYSQL_PASSWORD
更新应用
# 拉取最新镜像
docker compose pull
# 重启服务
docker compose up -d
# 清理旧镜像(可选)
docker image prune -f
故障排除
检查服务状态
# 查看容器状态
docker compose ps
# 查看资源使用情况
docker stats
常见问题
端口被占用
# 查看端口占用
lsof -i :1991
# 解决方案:指定其他端口
SK_APP_PORT=8080 bash setup.sh
服务启动失败
# 查看详细错误日志
docker compose logs surveyking-app
# 重启服务
docker compose restart surveyking-app
数据库连接失败
# 查看数据库日志
docker compose logs surveyking-mysql
# 检查数据库状态
docker compose exec surveyking-mysql mysql -u surveyking -p -e "SELECT 1"
重置服务
# 完全重置(会删除数据)
docker compose down -v
docker compose up -d
访问系统
- 前端页面:http://localhost:1991
- 管理后台:http://localhost:1991/admin
- 默认账号:admin / 123456
注意
部署完成后请立即修改默认密码!
数据备份
# 进入 surveyking 目录
cd surveyking
# 获取密码
MYSQL_PASSWORD=$(grep MYSQL_PASSWORD .env | cut -d'=' -f2)
# 备份数据库到当前目录
docker compose exec surveyking-mysql mysqldump -u surveyking -p${MYSQL_PASSWORD} surveyking > backup_$(date +%Y%m%d_%H%M%S).sql
# 恢复数据库
docker compose exec -i surveyking-mysql mysql -u surveyking -p${MYSQL_PASSWORD} surveyking < backup_20241201_120000.sql
手动备份(需要输入密码)
cd surveyking
# 备份数据库(会提示输入密码)
docker compose exec surveyking-mysql mysqldump -u surveyking -p surveyking > backup.sql
# 恢复数据库(会提示输入密码)
docker compose exec -i surveyking-mysql mysql -u surveyking -p surveyking < backup.sql