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
相关推荐
z44247532621 小时前
SQL利用JOIN实现数据关联分析的实操_关联维度表补全信息
jvm·数据库·python
lUie INGA21 小时前
MySQL事件功能简介
数据库·mysql
maqr_11021 小时前
SQL如何快速提取分组中最晚时间点数据_结合窗口函数实现
jvm·数据库·python
Shorasul21 小时前
mysql如何限制特定表的最大存储空间_通过ALTER TABLE设置MAX_ROWS
jvm·数据库·python
214396521 小时前
如何存储MongoDB的爬虫抓取数据_动态字段与无模式宽容度.txt
jvm·数据库·python
m0_7489203621 小时前
CSS如何实现网格内绝对定位_利用Grid的relative属性层级控制
jvm·数据库·python
qq_3422958221 小时前
golang如何优化磁盘IO性能_golang磁盘IO性能优化思路
jvm·数据库·python
weixin_4249993621 小时前
MySQL中如何使用CAST实现类型转换_MySQL数据类型转换技巧
jvm·数据库·python
2301_7775993721 小时前
SQL如何高效提取大表前几行:分页查询与OFFSET优化.txt
jvm·数据库·python
2301_8135995521 小时前
CSS如何实现纯CSS树状目录结构_利用-checked与递归思维构建交互节点
jvm·数据库·python