Docker Desktop部署Weaviate向量数据库:从配置到生产环境全流程

在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
相关推荐
oradh9 小时前
Oracle enq: TX - index contention 锁等待事件问题排查总结
数据库·oracle·oracle enq tx·enq tx index
CDN3609 小时前
爬虫把价格库扒光、SQL注入打穿数据库?360CDN WAF规则引擎深度定制,把防护精度拉到逐字段级
数据库·爬虫·sql
数据库小学妹11 小时前
MySQL长事务复盘:Sleep连接、MDL排队与undo滞留
运维·数据库·mysql
半摆烂日常12 小时前
自建WMS和买成品:三年成本对比
大数据·服务器·数据库·python·深度学习·低代码·numpy
风123456789~12 小时前
【架构专栏】第6章 数据库设计基础知识 1/4
数据库·架构
Nturmoils12 小时前
异构数据同步不只追延迟:用 KFS 守住不停机迁移的每一笔账
数据库
星星落进兜里12 小时前
Redis 内存缓存,面试补充
数据库·redis·面试
棣廷13 小时前
初识MySQL——DQL数据查询语言详解
数据库·mysql
大模型码小白13 小时前
ChatGPT 的回答也能被结构化抓取?AI Bot Scraper 对比测评
服务器·开发语言·数据库·人工智能·spring·chatgpt
天涯柳絮13 小时前
SQL注入
数据库·sql·网络安全