使用 Docker 安装

使用官方 0.1.0-beta.1 Docker 镜像启动单机 Lavik,通过 redis-cli 连接,并在替换容器时保留数据。

准备工作

安装 Docker Engine 或 Docker Desktop。官方 eloqdata/lavik:0.1.0-beta.1 镜像支持 Linux AMD64 和 ARM64;Apple Silicon 上的 Docker Desktop 使用原生 ARM64。镜像包含 Minimal 版本,使用内核 TCP 和 io_uring,不包含 SPDK/DPDK。如需 Standard 包和 SPDK 配置,请参阅二进制安装。

Linux 主机或 Docker 虚拟机必须支持 io_uring。示例通过 seccomp=unconfined 放行,并以 UID/GID 10001:10001 运行,无需特权模式。请为初始 1 GiB 数据文件预留磁盘空间。6379 端口必须空闲;若已有 Redis 或 Lavik,可改为 127.0.0.1:16379:6379。

使用二进制安装 →

启动 Lavik

在终端执行以下命令,无需 Dockerfile、源码编译或在宿主机安装 Lavik。镜像已包含 redis-cli。首次安装请使用新的命名卷。

single-start.sh

Linux · bash
docker pull eloqdata/lavik:0.1.0-beta.1
docker run -d --name lavik \
  --security-opt seccomp=unconfined \
  --stop-timeout 60 \
  -p 127.0.0.1:6379:6379 \
  -v lavik-data:/data \
  eloqdata/lavik:0.1.0-beta.1

监听端口仅发布到本机回环地址。macOS 请使用发布的端口,不要连接 Docker 网桥地址。这些命令用于不启用认证的本地使用;远程开放前请配置认证和 TLS。

连接并写入数据

启动需要短暂等待。PING 应返回 PONG,SET 返回 OK,GET 返回 lavik。如果仍在启动,请检查日志并重试 PING。宿主机客户端也可使用 redis-cli -h 127.0.0.1 -p 6379(或您选择的宿主机端口)连接。

single-connect.sh

Linux · bash
docker logs --tail 50 lavik
docker exec lavik redis-cli PING
docker exec lavik redis-cli SET hello lavik
docker exec lavik redis-cli GET hello

配置存储与工作线程

入口脚本在首次启动时预分配 1 GiB 的 /data/lavik.data,并使用两个工作线程。在镜像名之前添加 -e LAVIK_DATA_SIZE=4G 和 -e LAVIK_THREADS=4 可修改默认值。修改 LAVIK_DATA_SIZE 不会调整或截断已有数据文件。日志和数据保存在 lavik-data 卷中,切勿将同一数据卷挂载给两个同时运行的服务。

额外服务参数放在镜像名之后;显式长选项会覆盖对应默认值。绑定挂载的数据目录必须允许 UID 10001 写入。指定 --data-file 后,需要自行预分配该文件。如挂载 Redis 风格的配置文件,在镜像名后使用 lavik /etc/lavik/lavik.conf;此时监听地址、存储及其他设置全部由配置文件负责。

重启并保留数据

single-restart.sh

Linux · bash
docker restart -t 60 lavik
# Wait for PING to return PONG, then read the saved value.
docker exec lavik redis-cli PING
docker exec lavik redis-cli GET hello

替换容器时,先执行 docker stop -t 60 lavik,再执行 docker rm lavik,然后使用相同的 lavik-data 卷重新运行启动命令。删除容器会保留命名卷;删除卷则会删除数据库,重启或升级时不要删除卷。

使用 Docker Compose 运行主从集群 →