安装前检查
# 1. 确认 Docker 已安装并运行 docker --version systemctl status docker # 2. 确认有足够磁盘空间(镜像约 3GB) df -h /var/lib/docker
🚀 一键安装脚本
复制以下完整脚本,在 root 终端执行:

#!/bin/bash
# CoPaw 一键安装脚本
set -e
echo "============================================"
echo "🚀 CoPaw 安装脚本"
echo "============================================"
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 1. 检查 Docker
echo -e "${YELLOW}[1/5] 检查 Docker...${NC}"
if ! command -v docker &> /dev/null; then
echo -e "${RED}错误:Docker 未安装${NC}"
echo "请先安装 Docker: curl -fsSL https://get.docker.com | bash"
exit 1
fi
echo -e "${GREEN}✓ Docker 已安装:$(docker --version)${NC}"
# 2. 配置镜像加速器(解决国内访问超时)
echo -e "${YELLOW}[2/5] 配置 Docker 镜像加速器...${NC}"
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
EOF
systemctl daemon-reload
systemctl restart docker
echo -e "${GREEN}✓ 镜像加速器配置完成${NC}"
# 3. 拉取镜像
echo -e "${YELLOW}[3/5] 拉取 CoPaw 镜像(约 3GB,请耐心等待)...${NC}"
docker pull agentscope/copaw:latest
echo -e "${GREEN}✓ 镜像拉取完成${NC}"
# 4. 运行容器
echo -e "${YELLOW}[4/5] 启动 CoPaw 容器...${NC}"
# 先清理可能存在的旧容器
docker stop copaw 2>/dev/null || true
docker rm copaw 2>/dev/null || true
docker run -d \
--name copaw \
--restart unless-stopped \
-p 8088:8088 \
agentscope/copaw:latest
echo -e "${GREEN}✓ 容器已启动${NC}"
# 5. 等待并验证
echo -e "${YELLOW}[5/5] 等待服务启动...${NC}"
sleep 10
# 检查容器状态
if docker ps | grep -q copaw; then
echo -e "${GREEN}✓ 容器运行正常${NC}"
else
echo -e "${RED}✗ 容器启动失败,请查看日志:docker logs copaw${NC}"
exit 1
fi
# 测试端口
if curl -s -o /dev/null -w "%{http_code}" http://localhost:8088 --connect-timeout 5 | grep -q "200"; then
echo -e "${GREEN}✓ 服务访问正常${NC}"
else
echo -e "${YELLOW}⚠ 服务可能还在启动中,稍后再试${NC}"
fi
# 获取服务器 IP
SERVER_IP=$(hostname -I | awk '{print $1}')
echo ""
echo "============================================"
echo -e "${GREEN}🎉 安装完成!${NC}"
echo "============================================"
echo ""
echo "📍 访问地址:"
echo " 本地:http://localhost:8088"
echo " 远程:http://${SERVER_IP}:8088"
echo ""
echo "📋 常用命令:"
echo " 查看日志:docker logs -f copaw"
echo " 停止服务:docker stop copaw"
echo " 启动服务:docker start copaw"
echo " 重启服务:docker restart copaw"
echo ""
echo "🔒 防火墙提示:"
echo " 如无法远程访问,请开放 8088 端口:"
echo " ufw allow 8088/tcp"
echo ""
echo "============================================"📝 手动分步安装(备选)
如果一键脚本有问题,可分步执行:
步骤 1:配置镜像加速器
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
EOF
systemctl daemon-reload
systemctl restart docker步骤 2:验证配置
docker info | grep -A 5 "Registry Mirrors"
应看到配置的镜像源地址。
步骤 3:拉取镜像
docker pull agentscope/copaw:latest
预计耗时: 5-15 分钟(取决于网络)
镜像大小: 约 3GB
步骤 4:运行容器
docker run -d \ --name copaw \ --restart unless-stopped \ -p 8088:8088 \ agentscope/copaw:latest
步骤 5:验证安装
# 检查容器状态 docker ps | grep copaw # 检查端口映射 docker port copaw # 等待 10 秒后测试访问 sleep 10 curl -I http://localhost:8088
🔧 故障排查
问题 1:拉取镜像超时
Error: Get "https://registry-1.docker.io/v2/": net/http: request canceled
解决: 确认镜像加速器配置正确
cat /etc/docker/daemon.json systemctl restart docker docker pull agentscope/copaw:latest
问题 2:容器启动后立即退出
# 查看日志 docker logs copaw # 删除容器重新运行 docker rm copaw docker run -d --name copaw --restart unless-stopped -p 8088:8088 agentscope/copaw:latest
问题 3:无法远程访问
# 检查防火墙 ufw status ufw allow 8088/tcp # 检查云服务商安全组(阿里云/腾讯云/AWS 等) # 需要在控制台开放 8088 端口
问题 4:端口被占用
# 检查 8088 端口占用 netstat -tlnp | grep 8088 # 更换端口运行 docker run -d --name copaw --restart unless-stopped -p 8089:8088 agentscope/copaw:latest
🧹 卸载 CoPaw
# 停止并删除容器 docker stop copaw docker rm copaw # 删除镜像 docker rmi agentscope/copaw:latest # 清理悬空镜像 docker image prune -f # 可选:恢复 Docker 默认配置 rm /etc/docker/daemon.json systemctl restart docker
📊 资源需求
| 项目 | 要求 |
|---|---|
| CPU | 2 核以上 |
| 内存 | 4GB 以上 |
| 磁盘 | 10GB 以上可用空间 |
| 端口 | 8088(可自定义) |
✅ 安装成功标志
docker ps显示copaw容器状态为Up浏览器访问
http://服务器IP:8088能打开界面curl http://localhost:8088返回 HTTP 200