- LXD повреждён - snap пакет LXD отсутствует или повреждён
- Docker на хосте работает - версия 29.3.0, есть два контейнера
- LXD контейнеры отсутствуют - все LXD контейнеры потеряны
Решение: Переустановить LXD и восстановить рабочую среду
1. Очистить повреждённый LXD
bash
# Удалить повреждённый snap LXD
sudo snap remove lxd --purge
# Очистить остатки
sudo rm -rf /var/snap/lxd
sudo rm -rf /var/lib/lxd
2. Установить LXD заново
bash
# Установить LXD через snap
sudo snap install lxd
# Инициализировать LXD (выберите стандартные настройки)
sudo lxd init --minimal
# Добавить пользователя в группу lxd
sudo usermod -aG lxd $USER
# Перезагрузить сессию (выйдите и зайдите снова)
newgrp lxd
3. Создать новый LXD контейнер с Docker
bash
# Создать привилегированный контейнер
lxc launch ubuntu:22.04 docker-host --config security.privileged=true
# Настроить DNS
lxc exec docker-host -- bash -c "echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
lxc exec docker-host -- bash -c "echo 'nameserver 1.1.1.1' >> /etc/resolv.conf"
# Установить Docker внутри
lxc exec docker-host -- apt update
lxc exec docker-host -- apt install docker.io -y
# Запустить Docker
lxc exec docker-host -- systemctl start docker
# Проверить
lxc exec docker-host -- docker --version
4. Запустить тестовый nginx
bash
# Запустить nginx на порту 80
lxc exec docker-host -- docker run -d --name nginx-test -p 80:80 nginx
# Получить IP контейнера
lxc list docker-host
# Проверить доступ (используйте IP из вывода)
curl http://10.103.96.128 # или IP из lxc list
5. Альтернатива: Если нужен только Docker (без LXD)
Поскольку Docker на хосте уже работает, вы можете использовать его напрямую:
bash
# Очистить старые контейнеры
docker rm -f 92f44dbaa9ee 7fb0e346e6b2 2>/dev/null
# Запустить nginx на хосте
docker run -d --name nginx-test -p 80:80 nginx
# Проверить
curl localhost
Рекомендация
Учитывая, что:
- LXD был повреждён при восстановлении системы
- Docker на хосте работает стабильно
- Вам нужны контейнеры для приложений
Самый простой путь: использовать Docker напрямую на хосте, без LXD. Это надёжнее и проще в обслуживании.
Если вам нужна изоляция, как в LXD, то:
- Переустановите LXD по шагам выше
- Используйте привилегированные контейнеры для Docker
Какой вариант предпочитаете?