MyTetra Share
Делитесь знаниями!
Диагностика
Время создания: 25.03.2026 14:00
Автор: alensav
Текстовые метки: lxd docker
Раздел: UBUNTU_24-04
Запись: alensav/MyTetra2/main/base/1774436407l2k9bdhpki/text.html на raw.githubusercontent.com
  1. LXD повреждён - snap пакет LXD отсутствует или повреждён
  2. Docker на хосте работает - версия 29.3.0, есть два контейнера
  3. 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

Какой вариант предпочитаете?



 
MyTetra Share v.0.67
Яндекс индекс цитирования