在Docker Desktop上部署Weaviate向量数据库的全流程。
通过Docker Compose实现容器化,涵盖持久化存储、安全认证配置及text2vec-openai集成。提供Python/Java客户端连接示例,并针对端口冲突、数据持久化等常见问题给出实用解决方案,助力快速搭建高效AI语义搜索与推荐系统。
在Docker Desktop环境中部署Weaviate向量数据库的完整流程,涵盖基础配置、高级功能实现及客户端连接验证等核心环节。
基础部署流程
环境准备
- 已安装Docker Desktop(Windows/macOS/Linux)
- 确保Docker Compose功能可用(现代版本已内置)
配置文件编写

创建docker-compose.yml文件,核心配置如下:
version: '3.4'
services:
weaviate:
image: semitechnologies/weaviate:1.30.2
ports:
- "8080:8080"
- "50051:50051"
environment:
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: "true"
PERSISTENCE_DATA_PATH: "/var/lib/weaviate"
ENABLE_API_BASED_MODULES: "true"
volumes:
- weaviate_data:/var/lib/weaviate
restart: unless-stopped
volumes:
weaviate_data:
配置要点说明:
- 镜像版本选择建议使用稳定版(如1.30.2)
- 端口映射包含HTTP和gRPC协议
- 数据持久化通过volume实现
服务启动
执行以下命令启动服务:
docker-compose up -d
验证与测试
容器状态检查
docker ps | grep weaviate
正常状态应显示Up状态
API接口测试
curl http://localhost:8080/v1/meta
成功响应示例:
{
"hostname": "http://[::]:8080",
"modules": {
"text2vec-openai": {
"version": "...",
"documentationHref": "..."
}
}
}
高级功能配置
向量化模块集成
以text2vec-openai为例的配置:
environment:
ENABLED_MODULES: "text2vec-openai"
DEFAULT_VECTORIZER_MODULE: "text2vec-openai"
OPENAI_APIKEY: "your-openai-api-key"
TLS加密配置
environment:
TLS_CERTIFICATE: "/etc/ssl/certs/tls.crt"
TLS_PRIVATE_KEY: "/etc/ssl/private/tls.key"
volumes:
- ./certs:/etc/ssl/certs
客户端连接实现
Python客户端
from weaviate import Client
client = Client(
url="http://localhost:8080"
)
print(client.is_ready()) # 应返回True
Java客户端
import io.weaviate.client.Config;
import io.weaviate.client.WeaviateClient;
public class Main {
public static void main(String[] args) {
Config config = new Config("http", "localhost:8080");
WeaviateClient client = new WeaviateClient(config);
System.out.println(client.isReady());
}
}
常见问题处理
端口冲突解决方案
修改端口映射配置:
来此加密实现了一套完整的证书生命周期管理方案:从申请、验证、签发、部署,到到期提醒、自动续期,全流程自动化。你只需关注业务本身,证书管理交给来此加密,彻底消除运维盲点。
ports:
- "8081:8080"
数据持久化故障排查
Linux/macOS权限修复命令:
sudo chown -R 1000:1000 ./weaviate_data
部署清理
执行以下命令停止并删除容器:
docker-compose down -v