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
相关推荐
倔强的石头1062 小时前
【Linux指南】基础IO系列(三):Linux 系统 IO 接口 —— 深入内核的文件操作
linux·数据库
拾起零碎2 小时前
U8/领料申请单SQL server触发器,如果自定义项13有值,把数量修改成件数乘以自定义项13,如果恰好件数等于现存量,则数量同步出空
数据库
磊 子2 小时前
Redis详解
linux·数据库·redis·缓存
夕除2 小时前
Mysql--14
数据库·mysql
014-code2 小时前
Java Optional 那些被忽略的用法
java·数据库·javase
码云数智-园园2 小时前
关系型与非关系型数据库:核心区别与业务场景解析
数据库·oracle
Javatutouhouduan2 小时前
SQL优化从入门到精通!
java·数据库·mysql·sql优化·java面试·后端开发·java程序员
jnrjian2 小时前
restore archivelog RAC thread from sequence logseq
服务器·数据库
小草儿7992 小时前
PG18之插件使用大全(简单用例)
数据库