Чтобы удалить контейнер Marzban из Debian, нужно учитывать, как именно он был установлен — через Docker Compose, напрямую через docker run, или как systemd‑сервис. Я дам пошаговый разбор для каждого варианта:


🐳 Если Marzban запущен через Docker Compose

  1. Перейдите в каталог, где находится docker-compose.yml: cd /opt/marzban # или ваш путь
  2. Остановите контейнеры: docker compose down Это удалит все контейнеры, но оставит образы и тома.
  3. Если нужно удалить и образы: docker compose down --rmi all
  4. Если нужно удалить и тома (данные): docker compose down --volumes

🐋 Если Marzban запущен через docker run

  1. Найдите контейнер: docker ps -a | grep marzban
  2. Остановите его: docker stop <container_id>
  3. Удалите контейнер: docker rm <container_id>
  4. При необходимости удалите образ: docker rmi marzban

⚙️ Если установлен как systemd‑сервис

  1. Остановите сервис: sudo systemctl stop marzban
  2. Отключите автозапуск: sudo systemctl disable marzban
  3. Удалите unit‑файл: sudo rm /etc/systemd/system/marzban.service
  4. Перезапустите systemd: sudo systemctl daemon-reload

🧹 Дополнительно

  • Проверьте, нет ли оставшихся томов: docker volume ls docker volume rm <volume_name>
  • Очистите ненужные ресурсы: docker system prune -a

Готовый скрипт для полной зачистки Marzban из системы

Вот универсальный bash‑скрипт для полной зачистки Marzban из Debian. Он удаляет контейнеры, образы, тома, systemd‑юниты и остаточные файлы. Скрипт рассчитан на установку через Docker/Docker Compose, но также проверяет systemd‑сервисы:

#!/bin/bash
# marzban-cleanup.sh
# Полная зачистка Marzban из системы Debian

set -euo pipefail

LOGFILE="/var/log/marzban-cleanup.log"
exec > >(tee -a "$LOGFILE") 2>&1

echo "[INFO] Проверка наличия Docker..."
if ! command -v docker &>/dev/null; then
  echo "[ERROR] Docker не установлен!"
  exit 1
fi

echo "[INFO] Удаление контейнеров Marzban..."
docker ps -a --filter "name=marzban" -q | xargs -r docker rm -f

echo "[INFO] Удаление образов Marzban..."
docker images --format "{{.Repository}} {{.ID}}" | grep marzban | awk '{print $2}' | xargs -r docker rmi -f

echo "[INFO] Удаление томов Marzban..."
docker volume ls --filter "name=marzban" -q | xargs -r docker volume rm

echo "[INFO] Очистка systemd unit-файлов..."
for svc in marzban marzban.service; do
  if systemctl list-unit-files | grep -q "$svc"; then
    sudo systemctl stop "$svc" || true
    sudo systemctl disable "$svc" || true
    sudo rm -f "/etc/systemd/system/$svc"
  fi
done
sudo systemctl daemon-reload

echo "[INFO] Удаление каталогов конфигурации..."
sudo rm -rf /opt/marzban /var/lib/marzban /etc/marzban

echo "[INFO] Очистка dangling ресурсов Docker..."
docker system prune -af --volumes

echo "[SUCCESS] Marzban полностью удалён из системы."

🔧 Инструкция по применению

  1. Сохраните скрипт в файл:bashnano marzban-cleanup.sh Вставьте содержимое и сохраните.
  2. Сделайте исполняемым:bashchmod +x marzban-cleanup.sh
  3. Запустите от root или через sudo:bashsudo ./marzban-cleanup.sh

⚠️ Важно

  • Скрипт удаляет все данные Marzban (включая базы, конфиги и ключи). Если нужно сохранить пользователей или настройки — сделайте резервную копию заранее.
  • После выполнения система будет полностью очищена от Marzban, можно заново ставить или оставить без него.

От alex

Обучаемый.