Install With Docker
Start a standalone Lavik server with the official 0.1.0-beta.1 Docker image, connect with redis-cli, and keep your data across container replacements.
Before You Start
Install Docker Engine or Docker Desktop. The official eloqdata/lavik:0.1.0-beta.1 image supports Linux AMD64 and ARM64; Docker Desktop on Apple Silicon uses ARM64 natively. It packages the Minimal release with kernel TCP and io_uring. SPDK/DPDK are not included. Use Install With Binary for the Standard package and SPDK setup.
The Linux host or Docker VM must support io_uring. The example uses seccomp=unconfined to allow it and runs as UID/GID 10001:10001 without privileged mode. Reserve free disk space for the initial 1 GiB data file. Port 6379 must be free; use 127.0.0.1:16379:6379 instead if another Redis or Lavik instance is running.
Start Lavik
Run these commands in your terminal. No Dockerfile, source build, or host-installed Lavik binary is needed. The image includes redis-cli. Use a fresh named volume for your first installation.
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.1The listener is published only on localhost. On macOS, connect through this published port, not a Docker bridge address. These commands are for local use without authentication; configure authentication and TLS before exposing Lavik remotely.
Connect and Write Data
Allow a short startup wait. PING should return PONG, SET should return OK, and GET should return lavik. If startup is still in progress, check the logs and retry PING. A host-installed client can also connect with redis-cli -h 127.0.0.1 -p 6379 (or your chosen host port).
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 helloConfigure Storage and Workers
The entrypoint preallocates /data/lavik.data to 1 GiB on first start and uses two workers. Add -e LAVIK_DATA_SIZE=4G and -e LAVIK_THREADS=4 before the image name to change the defaults. Changing LAVIK_DATA_SIZE does not resize or truncate an existing data file. File logs and storage stay in the lavik-data volume. Never attach one data volume to two running servers.
Additional server flags go after the image name; explicit long options override the matching defaults. Bind-mounted data directories must be writable by UID 10001. Supplying --data-file makes you responsible for preallocating that file. For a mounted Redis-style configuration, use lavik /etc/lavik/lavik.conf after the image name; that configuration owns the listener, storage, and all other settings.
Restart and Preserve Data
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 helloTo replace the container, run docker stop -t 60 lavik, then docker rm lavik, and repeat the start command with the same lavik-data volume. Removing the container keeps the named volume. Deleting the volume deletes your database; do not remove it for a restart or upgrade.