使用 Docker 安装
拉取 0.2.0 Docker 镜像,并使用持久卷运行。
运行要求
从 Docker Hub 拉取 eloqdata/lavik:0.2.0。Docker 自动选择对应的 AMD64 或 ARM64 镜像。镜像使用官方已校验的 0.2.0 Minimal 服务端发布包。
使用 Linux 容器的 Docker、Linux 6.1+ 及可用的 io_uring。镜像支持 linux/amd64 和 linux/arm64,包含 Minimal 服务端:内核 TCP/io_uring,不含 SPDK/DPDK 或 Lavik Admin。seccomp 选项允许容器使用 io_uring,无需 privileged 模式。
1. 启动独立服务
# Run in Bash; stop if the image cannot be pulled.
set -euo pipefail
docker pull eloqdata/lavik:0.2.0
docker run -d --name lavik \
--security-opt seccomp=unconfined \
--ulimit memlock=536870912:536870912 \
-p 127.0.0.1:6379:6379 -v lavik-data:/data \
-e LAVIK_DATA_SIZE=1G -e LAVIK_THREADS=2 \
eloqdata/lavik:0.2.0
wait_for_lavik() {
local attempt
for attempt in {1..60}; do
if [ "$(docker exec lavik timeout 3 redis-cli --raw PING 2>/dev/null)" = PONG ]; then
return 0
fi
sleep 2
done
echo 'Lavik was not ready within 60 checks; inspect docker logs lavik.' >&2
return 1
}
wait_for_lavik镜像以 UID/GID 10001 运行。命名卷避免主机目录权限问题。数据文件只分配一次,复用卷会保留现有文件大小和数据。如已有服务运行,请选择未使用的容器名和端口。
2. 连接
docker exec lavik redis-cli PING
docker exec lavik redis-cli SET greeting 'hello from Lavik'
docker exec lavik redis-cli GET greeting
docker logs --tail 50 lavik3. 重启并保留数据
set -euo pipefail
docker stop --time 60 lavik
docker start lavik
wait_for_lavik() {
local attempt
for attempt in {1..60}; do
if [ "$(docker exec lavik timeout 3 redis-cli --raw PING 2>/dev/null)" = PONG ]; then
return 0
fi
sleep 2
done
echo 'Lavik was not ready within 60 checks; inspect docker logs lavik.' >&2
return 1
}
wait_for_lavik
docker exec lavik redis-cli GET greeting替换容器时,仅停止并移除容器,再使用同一个 lavik-data 卷执行启动命令。仅在确实要删除数据时才删除卷。复制与故障转移请参阅 Compose 指南。