使用 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
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
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
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 卷重新运行启动命令。删除容器会保留命名卷;删除卷则会删除数据库,重启或升级时不要删除卷。