Чтобы удалить контейнер Marzban из Debian, нужно учитывать, как именно он был установлен — через Docker Compose, напрямую через docker run, или как systemd‑сервис. Я дам пошаговый разбор для каждого варианта:
🐳 Если Marzban запущен через Docker Compose
- Перейдите в каталог, где находится
docker-compose.yml:cd /opt/marzban # или ваш путь - Остановите контейнеры:
docker compose downЭто удалит все контейнеры, но оставит образы и тома. - Если нужно удалить и образы:
docker compose down --rmi all - Если нужно удалить и тома (данные):
docker compose down --volumes
🐋 Если Marzban запущен через docker run
- Найдите контейнер:
docker ps -a | grep marzban - Остановите его:
docker stop <container_id> - Удалите контейнер:
docker rm <container_id> - При необходимости удалите образ:
docker rmi marzban
⚙️ Если установлен как systemd‑сервис
- Остановите сервис:
sudo systemctl stop marzban - Отключите автозапуск:
sudo systemctl disable marzban - Удалите unit‑файл:
sudo rm /etc/systemd/system/marzban.service - Перезапустите 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 полностью удалён из системы."
🔧 Инструкция по применению
- Сохраните скрипт в файл:bash
nano marzban-cleanup.shВставьте содержимое и сохраните. - Сделайте исполняемым:bash
chmod +x marzban-cleanup.sh - Запустите от root или через
sudo:bashsudo ./marzban-cleanup.sh
⚠️ Важно
- Скрипт удаляет все данные Marzban (включая базы, конфиги и ключи). Если нужно сохранить пользователей или настройки — сделайте резервную копию заранее.
- После выполнения система будет полностью очищена от Marzban, можно заново ставить или оставить без него.