[Документация](../../README-ru.md#документация) → Установка → Установка в Docker

-----

[Read in English](docker.en.md)

# Установка в Docker

Vitastor можно установить в Docker/Podman. При этом etcd, мониторы и OSD запускаются
в контейнерах, но всё остальное выглядит максимально приближенно к установке из пакетов:
- используется сеть хост-системы
- для автозапуска используются udev и systemd
- журналы записываются в journald (не в json-файлы журналов docker)
- в хост-систему устанавливаются обёртки для вызова консольных инструментов vitastor-disk,
  vitastor-cli и других через контейнер

Такая установка полезна тогда, когда установка из пакетов невозможна или неудобна,
например, в нестандартных Linux-дистрибутивах.

Если вам нужна не просто контейнеризованная инсталляция, вы также можете обратить внимание
на Vitastor Kubernetes-оператор: https://github.com/Antilles7227/vitastor-operator

## Установка контейнеров

Инструкция по установке максимально простая.

1. Скачайте Docker-образ желаемой версии: \
   `docker pull vitalif/vitastor:v3.0.15`
2. Установите скрипты в хост-систему командой: \
   `docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.15 install.sh`
3. Перезагрузите правила udev: \
   `udevadm control --reload-rules`
4. Включите сервис vitastor-host: \
   `systemctl enable --now vitastor-host`

После этого вы можете возвращаться к разделу [Быстрый старт](../intro/quickstart.ru.md).

## Podman

Если вы используете Podman, перед установкой контейнеров Vitastor выполните следующие
команды от имени суперпользователя:

```
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
```

Без этих настроек udev не может делать вызовы внутрь Podman-контейнеров и определение дисков Vitastor не работает.

## Обновление контейнеров

Сначала обязательно проверьте раздел [Обновление Vitastor](../usage/admin.ru.md#обновление-vitastor),
чтобы понять, не требуются ли вам какие-то дополнительные действия.

После этого для обновления Docker-инсталляции вам нужно просто поменять опцию `VITASTOR_VERSION`
в файле `/etc/vitastor/docker.conf` и перезапустить все сервисы Vitastor командой:

`systemctl restart vitastor.target`

## QEMU

В Docker-образ также входят QEMU, qemu-img и qemu-storage-daemon, собранные с поддержкой Vitastor.

Однако настроить запуск QEMU в Docker сложнее и способ запуска зависит от используемого интерфейса
виртуализации (OpenNebula, Proxmox и т.п.). Также для OpenNebula, например, требуется патченый
Libvirt.

Поэтому по умолчанию Docker-сборка пока что не включает в себя готового способа запуска QEMU
и QEMU рекомендуется устанавливать из пакетов или собирать самостоятельно.

## fio

fio также входит в Docker-контейнер vitastor, и в хост-систему устанавливается обёртка `vitastor-fio`
для запуска fio в контейнер.
