# Удаление XRM Director

{% hint style="warning" %}
Данная инструкция приводит к полному удалению XRM Director, связанных контейнеров, сетей, образов и рабочих данных с сервера.
{% endhint %}

{% hint style="danger" %}
Перед выполнением убедитесь, что данные из каталогов приложения, журналы и конфигурационные файлы больше не нужны или предварительно сохранены в резервную копию.
{% endhint %}

**Назначение инструкции**

Документ описывает полное удаление развертывания XRM Director с сервера, включая:

* остановку и удаление контейнеров;
* удаление Docker-сети, связанной с XRM Director;
* удаление контейнерных образов XRM Director;
* удаление рабочих каталогов и файлов конфигурации на сервере.

***

### Что будет удалено

В типовом сценарии будут удалены:

* контейнеры `backend` и `frontend` XRM Director;
* сеть Docker `xrm-network`;
* контейнерные образы `xrmtech/xrm-director-backend:*` и `xrmtech/xrm-director-frontend:*`;
* каталог развертывания, например `/opt/xrmd`.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Если на сервере присутствуют другие проекты Docker, данная инструкция не должна затрагивать их контейнеры и сети. Удаляйте только объекты, относящиеся к XRM Director.</p></div>

### Предварительная проверка

Перед удалением рекомендуется проверить текущее состояние контейнеров:

```bash
docker ps -a
```

Если XRM Director развернут через `docker compose`, также проверьте состав проекта из каталога установки:

```bash
cd /opt/xrmd
docker compose ps
```

***

### Шаг 1. Остановка контейнеров XRM Director

Перейдите в каталог развертывания:

```bash
cd /opt/xrmd
```

Остановите и удалите контейнеры проекта:

```bash
docker compose down
```

{% hint style="info" %}
Команда \`docker compose down\` останавливает контейнеры проекта и удаляет созданные им контейнеры и сеть Compose, если она не используется другими контейнерами.
{% endhint %}

***

### Шаг 2. Проверка, что контейнеры больше не запущены

Выполните:

```bash
docker ps -a
```

Убедитесь, что контейнеры XRM Director отсутствуют или больше не находятся в состоянии `Up`.

Если контейнеры еще присутствуют, можно удалить их вручную.

Пример удаления контейнеров по имени:

```bash
docker rm -f xrmd_install-frontend-1
docker rm -f xrmd_install-backend-1
```

{% hint style="warning" %}
Имена контейнеров могут отличаться в зависимости от имени каталога проекта или параметров \`docker compose\`.
{% endhint %}

***

### Шаг 3. Удаление сети XRM Director

Проверьте список Docker-сетей:

```bash
docker network ls
```

Если в системе осталась сеть `xrm-network`, удалите ее:

```bash
docker network rm xrm-network
```

Если сеть уже удалена командой `docker compose down`, Docker вернет сообщение, что такой сети не существует.

***

### Шаг 4. Удаление образов XRM Director

Проверьте наличие образов:

```bash
docker images
```

Удалите образы XRM Director:

```bash
docker rmi xrmtech/xrm-director-backend:beta_0.2.7
docker rmi xrmtech/xrm-director-frontend:beta_0.2.7
```

Если на сервере используются другие теги этих же образов, при необходимости их тоже можно удалить:

```bash
docker images | grep xrm-director
```

{% hint style="warning" %}
Удаляйте только те образы, которые действительно относятся к XRM Director и не используются другими развертываниями.
{% endhint %}

***

### Шаг 5. Удаление рабочих каталогов и данных

Если конфигурация и данные больше не нужны, удалите каталог развертывания:

```bash
sudo rm -rf /opt/xrmd
```

В результате будут удалены:

* `docker-compose.yml`;
* `backend/settings.py`;
* журналы `logs`;
* рабочие данные `plandata`;
* локальные данные `db`.

  <div data-gb-custom-block data-tag="hint" data-style="danger" class="hint hint-danger"><p>Команда <code>rm -rf</code> удаляет данные без возможности восстановления стандартными средствами. Перед выполнением проверьте путь еще раз.</p></div>

***

### Шаг 6. Проверка полного удаления

Проверьте, что контейнеры XRM Director больше отсутствуют:

```bash
docker ps -a
```

Проверьте, что образы удалены:

```bash
docker images
```

Проверьте, что каталог установки удален:

```bash
ls -la /opt
```

При необходимости убедитесь, что сеть `xrm-network` больше не существует:

```bash
docker network ls
```

***

### Вариант быстрого удаления

Если требуется удалить типовое развертывание XRM Director целиком, можно использовать следующую последовательность:

```bash
cd /opt/xrmd
docker compose down
docker rmi xrmtech/xrm-director-backend:beta_0.2.7
docker rmi xrmtech/xrm-director-frontend:beta_0.2.7
sudo rm -rf /opt/xrmd
```

После этого выполните проверку:

```bash
docker ps -a
docker images
docker network ls
```

***

### Если требуется удалить только контейнеры, но сохранить данные

Если необходимо удалить только контейнеры и сеть, но оставить конфигурацию и рабочие данные на сервере, выполните только:

```bash
cd /opt/xrmd
docker compose down
```

В этом случае каталог `/opt/xrmd` останется в системе.

***

### Результат

После выполнения действий XRM Director, связанные с ним Docker-контейнеры, сеть, образы и рабочие файлы будут полностью удалены из системы.
