7.8 KiB
7.8 KiB
Hexo Blog Docker Complete Quick Start Guide Hexo Blog 完整快速指南
Version 版本: v0.0.3 | Status 状态: 🟢 Production Ready 生产就绪 | Updated 更新: 2025-05-29
🚀 5-Minute Quick Deployment 5分钟快速部署
📋 Prerequisites 前置要求
- Docker Desktop installed and running Docker Desktop 已安装并运行
- Windows 10/11 + PowerShell 5.0+
- Available ports 可用端口: 8080 (HTTP), 2222 (SSH)
⚡ One-Click Start Command 一键启动命令
# Build the stable version image 构建稳定版镜像
docker build -f Dockerfile_v0.0.3 -t hexo-blog:v0.0.3 .
# Start the container 启动容器
docker run -d --name hexo-blog --restart unless-stopped \\
-p 8080:80 -p 2222:22 \\
hexo-blog:v0.0.3
# Verify status 验证状态
docker ps | findstr hexo-blog
docker logs hexo-blog --tail 10
🌐 Access Now 立即访问
- Web Interface Web界面: http://localhost:8080
- Health Check 健康检查: http://localhost:8080/health
- Status Information 状态信息:
docker stats hexo-blog
🔑 SSH Git Deployment Full Configuration SSH Git 部署完整配置
1. Generate and Deploy SSH Keys 生成并部署SSH密钥
# Generate key pair (execute in project root directory) 生成密钥对 (在项目根目录执行)
ssh-keygen -t rsa -b 2048 -f hexo_key -N \'""\'
# Wait for the container to fully start (approx. 10-15 seconds) 等待容器完全启动 (约10-15秒)
Start-Sleep -Seconds 15
# Deploy public key to the container 部署公钥到容器
Get-Content hexo_key.pub | docker exec -i hexo-blog bash -c "
mkdir -p /home/hexo/.ssh &&
cat > /home/hexo/.ssh/authorized_keys &&
chmod 600 /home/hexo/.ssh/authorized_keys &&
chmod 700 /home/hexo/.ssh &&
chown -R hexo:hexo /home/hexo/.ssh
"
2. Verify SSH Connection 验证SSH连接
# Test SSH connection 测试SSH连接
ssh -i hexo_key -o ConnectTimeout=10 -o StrictHostKeyChecking=no -p 2222 hexo@localhost "echo \'SSH connection successful ✅ SSH连接成功 ✅\'"
3. Git Deployment Configuration Git部署配置
# Execute in your Hexo blog project 在您的Hexo博客项目中执行
git remote add docker ssh://hexo@localhost:2222/home/hexo/hexo.git
# Set SSH command (Windows) 设置SSH命令 (Windows)
$env:GIT_SSH_COMMAND = "ssh -i $(Get-Location)\\hexo_key -o StrictHostKeyChecking=no"
# Push deployment 推送部署
git add .
git commit -m "Deploy to Docker container 部署到Docker容器"
git push docker main
4. Verify Deployment Results 验证部署结果
# Check deployment logs 检查部署日志
docker exec hexo-blog tail -20 /var/log/container/deployment.log # Updated log path
# Access the updated website 访问更新后的网站
Start-Process "http://localhost:8080"
🛠️ Container Management Commands 容器管理命令
Basic Operations 基础操作
# View all Hexo containers 查看所有Hexo容器
docker ps -a --filter "name=hexo"
# Real-time monitoring 实时监控
docker stats hexo-blog
docker logs -f hexo-blog
# Restart service 重启服务
docker restart hexo-blog
# Enter container for debugging 进入容器调试
docker exec -it hexo-blog bash
Maintenance Operations 维护操作
# Completely reset the container 完全重置容器
docker stop hexo-blog; docker rm hexo-blog
docker run -d --name hexo-blog -p 8080:80 -p 2222:22 hexo-blog:v0.0.3
# Clean unused images 清理未使用的镜像
docker image prune -f
# Backup container data (if needed) 备份容器数据 (如果需要)
docker exec hexo-blog tar -czf /tmp/backup.tar.gz /home/hexo /home/www
docker cp hexo-blog:/tmp/backup.tar.gz ./hexo-backup-$(Get-Date -Format "yyyyMMdd-HHmmss").tar.gz
🔧 Troubleshooting Guide 故障排除指南
Common Issues and Solutions 常见问题解决
1. Port Conflict 端口冲突
# Check port usage 检查端口占用
netstat -ano | findstr :8080
netstat -ano | findstr :2222
# Use other ports 使用其他端口
docker run -d --name hexo-blog -p 8081:80 -p 2223:22 hexo-blog:v0.0.3
2. SSH Connection Failure SSH连接失败
# Check SSH service status 检查SSH服务状态
docker exec hexo-blog systemctl status ssh
# Restart SSH service 重启SSH服务
docker exec hexo-blog systemctl restart ssh
# Check SSH configuration 检查SSH配置
docker exec hexo-blog sshd -T | grep -E "(Port|PermitRootLogin|PubkeyAuthentication)"
3. Git Deployment Failure Git部署失败
# Check Git repository status 检查Git仓库状态
docker exec hexo-blog ls -la /home/hexo/hexo.git/
# Reinitialize Git repository 重新初始化Git仓库
docker exec hexo-blog bash -c "
cd /home/hexo &&
rm -rf hexo.git &&
git init --bare hexo.git &&
chown -R hexo:hexo hexo.git
"
4. Permission Issues 权限问题
# Fix file permissions 修复文件权限
docker exec hexo-blog chown -R hexo:hexo /home/hexo /home/www
docker exec hexo-blog chmod -R 755 /home/www
docker exec hexo-blog chmod 600 /home/hexo/.ssh/authorized_keys
5. Service Health Check 服务健康检查
# Full health check 完整健康检查
docker exec hexo-blog bash -c "
echo \'=== Service Status Check 服务状态检查 ===\' &&
systemctl is-active nginx ssh &&
echo \'=== Port Listening Check 端口监听检查 ===\' &&
ss -tlnp | grep -E \':(80|22)\' &&
echo \'=== File Permission Check 文件权限检查 ===\' &&
ls -la /home/hexo/.ssh/ &&
echo \'=== Disk Space Check 磁盘空间检查 ===\' &&
df -h /
"
📚 Detailed Documentation Index 详细文档索引
| Document 文档 | Purpose 用途 | Status 状态 |
|---|---|---|
| Production Deployment Guide 生产部署指南 | Production environment deployment 生产环境部署 | ✅ Completed 完成 |
| Full Test Report 完整测试报告 | Functional verification results 功能验证结果 | ✅ Completed 完成 |
| Project Integrity Check 项目完整性检查 | Quality assurance 质量保证 | ✅ Completed 完成 |
| Version Iteration Summary 迭代总结 | Complete development history 完整开发历程 | ✅ Completed 完成 |
🎯 Success Verification Checklist 成功验证清单
Basic Functionality Test 基础功能测试
- Container Start 容器启动: `docker ps` shows `Up (healthy)` `docker ps` 显示 `Up (healthy)`
- Web Access Web访问: http://localhost:8080 returns HTTP 200
- Health Check 健康检查: http://localhost:8080/health returns "healthy"
- SSH Connection SSH连接: `ssh -i hexo_key -p 2222 hexo@localhost` logs in successfully
- Git Deployment Git部署: `git push docker main` deploys successfully and auto-deploys
Advanced Functionality Test (v0.0.4-enhanced)
- Process Management 进程管理: `docker exec hexo-blog supervisorctl status` shows all services running
- Security Hardening 安全加固: SSH brute force protection is active
- Performance Monitoring 性能监控: `/status` endpoint returns detailed status information
- Automatic Backup 自动备份: Backup files are created automatically upon deployment
🚀 Next Steps 下一步行动
Immediately Available (v0.0.3-fixed)
- ✅ Production environment deployment
- ✅ Blog content publishing
- ✅ SSH auto-deployment setup
Planned Testing (v0.0.4-enhanced)
- 🧪 Functional integrity testing
- 📊 Performance benchmarking
- 🛡️ Security validation
- 📈 Monitoring system integration
Recommendation 推荐: Start with v0.0.3-fixed, consider upgrading to v0.0.4-enhanced after stable operation
Last updated 最后更新: 2025年5月29日 | Project status 项目状态: 生产就绪