Files
tromcho.net/docs/installation/docker.en.md
T
Vitaliy Filippov 4acfe149cb Release 3.0.10
Important bug fixes (new store):
- Fix OSDs possibly refusing to start with "write metadata failed at offset xxx: Invalid argument"
  (fix buffer alignment during initial garbage collection)
- Rollback change from 3.0.4 - on-disk garbage entries are not skipped on start again. This change
  doesn't have any impact normally, but OSDs originally running 3.0.0-3.0.2 and then upgraded
  to 3.0.9 may hit a bug where 3.0.9 refuses to start due to entries marked as garbage too
  early and flushed to disk in 3.0.0-3.0.2.

Other changes:
- Auto-select the only RDMA device/port if there is only one
- Rollback one 3.0.9 change - there was no actual use-after-free :)
  (the problem was only relevant to an unstable development version)
- Fix `vitastor-nfs --trace` option
- Fix an unintended 1 second sleep in vitastor-cli rm-data
- Fix inode statistics not being cleared for a deleted pool
- Fix print to stdout in client
2026-04-27 13:53:48 +03:00

2.8 KiB

Documentation → Installation → Dockerized Installation


Читать на русском

Dockerized Installation

Vitastor may be installed in Docker/Podman. In such setups etcd, monitors and OSD all run in containers, but everything else looks as close as possible to a usual setup with packages:

  • host network is used
  • auto-start is implemented through udev and systemd
  • logs are written to journald (not docker json log files)
  • command-line wrapper scripts are installed to the host system to call vitastor-disk, vitastor-cli and others through the container

Such installations may be useful when it's impossible or inconvenient to install Vitastor from packages, for example, in exotic Linux distributions.

If you don't want just a simple containerized installation, you can also take a look at Vitastor Kubernetes operator: https://github.com/Antilles7227/vitastor-operator

Installing Containers

The instruction is very simple.

  1. Download a Docker image of the desired version:
    docker pull vitalif/vitastor:v3.0.10
  2. Install scripts to the host system:
    docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.10 install.sh
  3. Reload udev rules:
    udevadm control --reload-rules
  4. Enable the vitastor-host service:
    systemctl enable --now vitastor-host

After these steps, you can return to Quick Start.

Podman

If you use Podman, run the following commands as root before installing Vitastor containers:

ln -s podman /usr/bin/docker

mkdir -p /etc/systemd/system/systemd-udevd.service.d

cat >/etc/systemd/system/systemd-udevd.service.d/override.conf <<EOF
[Service]
CapabilityBoundingSet=~
SystemCallFilter=@mount capset
EOF

systemctl daemon-reload

systemctl restart systemd-udevd

Without it, udev fails to do calls into a Podman container and Vitastor disk detection doesn't work.

Upgrading Containers

First make sure to check the topic Upgrading Vitastor to figure out if you need any additional steps.

Then, to upgrade a containerized installation, you just need to change the VITASTOR_VERSION option in /etc/vitastor/docker.conf and restart all Vitastor services:

systemctl restart vitastor.target

QEMU

Vitastor Docker image also contains QEMU, qemu-img and qemu-storage-daemon built with Vitastor support.

However, running QEMU in Docker is harder to setup and it depends on the used virtualization UI (OpenNebula, Proxmox and so on). Some of them also required patched Libvirt.

That's why containerized installation of Vitastor doesn't contain a ready-made QEMU setup and it's recommended to install QEMU from packages or build it manually.

fio

Vitastor Docker image also contains fio and installs a wrapper called vitastor-fio to use it from the host system.