265 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			265 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 代理IP管理系统 Docker 部署指南
 | 
						||
 | 
						||
## 🐳 Docker 快速开始
 | 
						||
 | 
						||
> 📌 **国内用户注意**:Dockerfile已配置国内镜像源加速,包括:
 | 
						||
> - Alpine Linux包管理器使用阿里云镜像源
 | 
						||
> - npm使用淘宝镜像源
 | 
						||
> - 大幅提升构建速度!
 | 
						||
 | 
						||
### 方式一:使用 Docker Compose(推荐)
 | 
						||
 | 
						||
1. **克隆项目**
 | 
						||
```bash
 | 
						||
git clone <your-repo-url>
 | 
						||
cd dailiip
 | 
						||
```
 | 
						||
 | 
						||
2. **构建并启动容器**
 | 
						||
```bash
 | 
						||
docker-compose up -d
 | 
						||
```
 | 
						||
 | 
						||
3. **查看日志**
 | 
						||
```bash
 | 
						||
docker-compose logs -f proxy-manager
 | 
						||
```
 | 
						||
 | 
						||
4. **访问应用**
 | 
						||
- 浏览器访问:http://localhost:3000
 | 
						||
- API地址:http://localhost:3000/api
 | 
						||
 | 
						||
### 方式二:使用 Docker 命令
 | 
						||
 | 
						||
1. **构建镜像**
 | 
						||
```bash
 | 
						||
docker build -t proxy-ip-manager .
 | 
						||
```
 | 
						||
 | 
						||
2. **运行容器**
 | 
						||
```bash
 | 
						||
# 基本运行
 | 
						||
docker run -d -p 3000:3000 --name proxy-manager proxy-ip-manager
 | 
						||
 | 
						||
# 带数据持久化
 | 
						||
docker run -d \
 | 
						||
  -p 3000:3000 \
 | 
						||
  -v $(pwd)/data:/app/data \
 | 
						||
  -v $(pwd)/logs:/app/logs \
 | 
						||
  --name proxy-manager \
 | 
						||
  --restart unless-stopped \
 | 
						||
  proxy-ip-manager
 | 
						||
```
 | 
						||
 | 
						||
## 📁 目录结构
 | 
						||
 | 
						||
```
 | 
						||
dailiip/
 | 
						||
├── Dockerfile              # Docker构建文件
 | 
						||
├── docker-compose.yml      # Docker Compose配置
 | 
						||
├── .dockerignore           # Docker忽略文件
 | 
						||
├── src/                    # 源代码
 | 
						||
├── public/                 # 静态文件
 | 
						||
├── data/                   # 数据库文件(运行时创建)
 | 
						||
└── logs/                   # 日志文件(运行时创建)
 | 
						||
```
 | 
						||
 | 
						||
## ⚙️ 环境变量
 | 
						||
 | 
						||
| 变量名 | 默认值 | 说明 |
 | 
						||
|--------|--------|------|
 | 
						||
| NODE_ENV | production | 运行环境 |
 | 
						||
| PORT | 3000 | 应用端口 |
 | 
						||
 | 
						||
## 📊 数据持久化
 | 
						||
 | 
						||
### Docker Compose 方式
 | 
						||
数据库文件会自动保存到 `./data` 目录,日志保存到 `./logs` 目录。
 | 
						||
 | 
						||
### Docker 命令方式
 | 
						||
使用 `-v` 参数挂载本地目录:
 | 
						||
 | 
						||
```bash
 | 
						||
-v /path/to/your/data:/app/data
 | 
						||
-v /path/to/your/logs:/app/logs
 | 
						||
```
 | 
						||
 | 
						||
## 🔧 常用命令
 | 
						||
 | 
						||
### Docker Compose
 | 
						||
```bash
 | 
						||
# 启动服务
 | 
						||
docker-compose up -d
 | 
						||
 | 
						||
# 停止服务
 | 
						||
docker-compose down
 | 
						||
 | 
						||
# 查看日志
 | 
						||
docker-compose logs -f
 | 
						||
 | 
						||
# 重新构建
 | 
						||
docker-compose up -d --build
 | 
						||
 | 
						||
# 进入容器
 | 
						||
docker-compose exec proxy-manager sh
 | 
						||
```
 | 
						||
 | 
						||
### Docker 命令
 | 
						||
```bash
 | 
						||
# 查看运行状态
 | 
						||
docker ps
 | 
						||
 | 
						||
# 查看日志
 | 
						||
docker logs proxy-manager
 | 
						||
 | 
						||
# 进入容器
 | 
						||
docker exec -it proxy-manager sh
 | 
						||
 | 
						||
# 停止容器
 | 
						||
docker stop proxy-manager
 | 
						||
 | 
						||
# 启动容器
 | 
						||
docker start proxy-manager
 | 
						||
 | 
						||
# 删除容器
 | 
						||
docker rm proxy-manager
 | 
						||
```
 | 
						||
 | 
						||
## 🔍 健康检查
 | 
						||
 | 
						||
容器包含内置的健康检查,每30秒检查一次:
 | 
						||
 | 
						||
```bash
 | 
						||
# 查看健康状态
 | 
						||
docker inspect proxy-manager | grep Health -A 10
 | 
						||
 | 
						||
# 查看健康检查日志
 | 
						||
docker inspect proxy-manager | grep Log -A 5
 | 
						||
```
 | 
						||
 | 
						||
## 🚨 故障排除
 | 
						||
 | 
						||
### 1. 容器无法启动
 | 
						||
```bash
 | 
						||
# 查看详细错误日志
 | 
						||
docker-compose logs proxy-manager
 | 
						||
 | 
						||
# 检查端口是否被占用
 | 
						||
netstat -tlnp | grep 3000
 | 
						||
```
 | 
						||
 | 
						||
### 2. 数据库问题
 | 
						||
```bash
 | 
						||
# 检查数据目录权限
 | 
						||
ls -la data/
 | 
						||
 | 
						||
# 重新创建数据目录
 | 
						||
sudo rm -rf data logs
 | 
						||
mkdir -p data logs
 | 
						||
sudo chown -R 1000:1000 data logs
 | 
						||
```
 | 
						||
 | 
						||
### 3. 性能优化
 | 
						||
```bash
 | 
						||
# 限制内存使用
 | 
						||
docker run -d --memory=512m proxy-ip-manager
 | 
						||
 | 
						||
# 设置CPU限制
 | 
						||
docker run -d --cpus=0.5 proxy-ip-manager
 | 
						||
```
 | 
						||
 | 
						||
## 📈 监控
 | 
						||
 | 
						||
### 使用健康检查API
 | 
						||
```bash
 | 
						||
curl http://localhost:3000/api/health
 | 
						||
```
 | 
						||
 | 
						||
### 查看资源使用情况
 | 
						||
```bash
 | 
						||
# 查看容器资源使用
 | 
						||
docker stats proxy-manager
 | 
						||
 | 
						||
# 查看磁盘使用
 | 
						||
docker system df
 | 
						||
```
 | 
						||
 | 
						||
## 🔄 更新应用
 | 
						||
 | 
						||
```bash
 | 
						||
# 拉取最新代码
 | 
						||
git pull
 | 
						||
 | 
						||
# 重新构建并启动
 | 
						||
docker-compose up -d --build
 | 
						||
```
 | 
						||
 | 
						||
## 🐛 调试模式
 | 
						||
 | 
						||
如需调试,可以临时修改环境变量:
 | 
						||
 | 
						||
```bash
 | 
						||
# 修改 docker-compose.yml
 | 
						||
environment:
 | 
						||
  - NODE_ENV=development
 | 
						||
  - DEBUG=proxy:*
 | 
						||
 | 
						||
# 或使用 Docker 命令
 | 
						||
docker run -d -e NODE_ENV=development -e DEBUG=proxy:* proxy-ip-manager
 | 
						||
```
 | 
						||
 | 
						||
## 🔒 安全建议
 | 
						||
 | 
						||
1. **使用非root用户运行**:Dockerfile中已配置
 | 
						||
2. **限制网络访问**:根据需要配置防火墙
 | 
						||
3. **定期更新镜像**:
 | 
						||
   ```bash
 | 
						||
   docker pull node:24.11.0-alpine
 | 
						||
   docker-compose up -d --build
 | 
						||
   ```
 | 
						||
 | 
						||
## 🇨🇳 国内用户加速(可选)
 | 
						||
 | 
						||
### Docker Hub镜像加速
 | 
						||
如果Docker Hub拉取镜像较慢,可以配置国内镜像加速:
 | 
						||
 | 
						||
```bash
 | 
						||
# 配置Docker镜像加速器(以阿里云为例)
 | 
						||
sudo mkdir -p /etc/docker
 | 
						||
sudo tee /etc/docker/daemon.json <<-'EOF'
 | 
						||
{
 | 
						||
  "registry-mirrors": [
 | 
						||
    "https://docker.mirrors.ustc.edu.cn",
 | 
						||
    "https://hub-mirror.c.163.com",
 | 
						||
    "https://mirror.baidubce.com"
 | 
						||
  ]
 | 
						||
}
 | 
						||
EOF
 | 
						||
 | 
						||
# 重启Docker服务
 | 
						||
sudo systemctl daemon-reload
 | 
						||
sudo systemctl restart docker
 | 
						||
```
 | 
						||
 | 
						||
### 构建时使用国内Node.js镜像
 | 
						||
```bash
 | 
						||
# 直接使用国内镜像源构建
 | 
						||
docker build -t proxy-ip-manager .
 | 
						||
 | 
						||
# 或者指定国内镜像构建
 | 
						||
docker build --build-arg REGISTRY=https://registry.npmmirror.com -t proxy-ip-manager .
 | 
						||
```
 | 
						||
 | 
						||
4. **备份数据**:
 | 
						||
   ```bash
 | 
						||
   # 备份数据库
 | 
						||
   tar -czf backup-$(date +%Y%m%d).tar.gz data/ logs/
 | 
						||
   ```
 | 
						||
 | 
						||
## 📞 支持
 | 
						||
 | 
						||
如遇问题,请检查:
 | 
						||
1. Docker和Docker Compose版本是否兼容
 | 
						||
2. 端口3000是否被占用
 | 
						||
3. 磁盘空间是否充足
 | 
						||
4. 查看容器日志获取详细错误信息 |