Files
weiyu/deploy/docker/readme.zh.md
jack ning b569ec5293 update
2025-09-19 10:39:41 +08:00

5.4 KiB
Raw Blame History

docker

文件说明

.
├── docker-compose-noai.yaml # 不使用ai无机器人问答
├── docker-compose-ollama.yaml # 启动微语内含ollama默认使用ollama对话
├── docker-compose.yaml # 启动微语不内含ollama默认使用zhipuai

微语启动步骤

# https://www.weiyuai.cn/docs/zh-CN/docs/deploy/docker
# 克隆项目
git clone https://github.com/Bytedesk/bytedesk.git
# 进入docker目录
cd bytedesk/deploy/docker
# 配置环境变量,根据需要修改
cp .env.example .env
# 启动docker compose容器, -f标志来指定文件路径, -d标志表示在后台模式下启动容器
# 同时启动mysql,redis,elasticsearch依赖和微语
docker compose -p bytedesk -f docker-compose.yaml up -d
# 同时启动mysql,redis,ollama,elasticsearch依赖和微语内含ollama
docker compose -p bytedesk -f docker-compose-ollama.yaml up -d
# 启动不使用ai无机器人问答
docker compose -p bytedesk -f docker-compose-noai.yaml up -d
# 拉取ollama模型
# 对话模型
docker exec ollama-bytedesk ollama pull qwen3:0.6b
# 嵌入模型
docker exec ollama-bytedesk ollama pull bge-m3:latest
# 重新排序Rerank模型
docker exec ollama-bytedesk ollama pull linux6200/bge-reranker-v2-m3:latest
# 停止
docker compose -p bytedesk -f docker-compose.yaml down
# 停止内含ollama
docker compose -p bytedesk -f docker-compose-ollama.yaml down

停止和重启服务

# 停止所有服务(保留数据)
docker compose -p bytedesk -f docker-compose-ollama.yaml down

# 停止所有服务并删除数据卷(谨慎操作,会删除所有数据)
docker compose -p bytedesk -f docker-compose-ollama.yaml down -v

# 重启特定服务
docker compose -p bytedesk -f docker-compose-ollama.yaml restart bytedesk

# 重启所有服务
docker compose -p bytedesk -f docker-compose-ollama.yaml restart

升级bytedesk镜像

# 1. 停止当前服务
docker compose -p bytedesk -f docker-compose-ollama.yaml down
# 或
docker stop bytedesk redis-bytedesk elasticsearch-bytedesk ollama-bytedesk mysql-bytedesk artemis-bytedesk

# 2. 拉取最新镜像
docker pull registry.cn-hangzhou.aliyuncs.com/bytedesk/bytedesk:latest

# 3. 重新启动服务(会自动使用最新镜像)
docker compose -p bytedesk -f docker-compose-ollama.yaml up -d

# 或者使用以下命令强制重新构建并启动
docker compose -p bytedesk -f docker-compose-ollama.yaml up -d --force-recreate bytedesk

删除MySQL数据挂载

如果需要删除MySQL数据挂载并重新初始化数据库请按以下步骤操作

# 1. 停止所有服务
docker compose -p bytedesk -f docker-compose-ollama.yaml down

# 1. 强制删除MySQL容器即使它已经退出
docker rm -f mysql-bytedesk

# 2. 现在可以删除数据卷了
docker volume rm bytedesk_mysql_data

# 3. 重新启动服务(会自动创建新的数据卷和数据库)
docker compose -p bytedesk -f docker-compose-ollama.yaml up -d

# 注意:删除数据卷后,所有数据都会丢失,需要重新初始化管理员账户

数据卷管理

# 查看所有数据卷
docker volume ls | grep bytedesk

# 查看数据卷详细信息
docker volume inspect bytedesk_mysql_data
docker volume inspect bytedesk_redis_data
docker volume inspect bytedesk_elasticsearch_data
docker volume inspect bytedesk_upload_data
docker volume inspect bytedesk_ollama_models
docker volume inspect bytedesk_artemis_data

# 备份数据卷(可选)
docker run --rm -v bytedesk_mysql_data:/data -v $(pwd):/backup alpine tar czf /backup/mysql_backup.tar.gz -C /data .

# 恢复数据卷(可选)
docker run --rm -v bytedesk_mysql_data:/data -v $(pwd):/backup alpine tar xzf /backup/mysql_backup.tar.gz -C /data

故障排除

如果遇到数据库连接问题或服务启动失败,可以尝试以下步骤:

# 查看容器状态
docker ps -a

# 查看服务日志
docker logs mysql-bytedesk
docker logs bytedesk

# 如果服务启动失败,可以尝试重启
docker compose -p bytedesk -f docker-compose.yaml down
docker compose -p bytedesk -f docker-compose.yaml up -d

# 检查网络连接
docker network inspect bytedesk-network

# 清理未使用的资源
docker system prune -f

常用命令

# 查看服务状态
docker compose -p bytedesk -f docker-compose-ollama.yaml ps

# 查看服务日志
docker compose -p bytedesk -f docker-compose-ollama.yaml logs

# 查看特定服务日志
docker compose -p bytedesk -f docker-compose-ollama.yaml logs bytedesk

# 进入容器内部
docker exec -it bytedesk /bin/bash
docker exec -it mysql-bytedesk mysql -u root -p

# 查看容器资源使用情况
docker stats

# 查看容器镜像架构
docker inspect registry.cn-hangzhou.aliyuncs.com/bytedesk/bytedesk:latest --format='{{.Architecture}}'