Предположим, контейнер называется cont-incus-yuno-1

Вот самый простой и надёжный способ перенести контейнер cont-incus-yuno-1 на другой компьютер с помощью Incus (работает для контейнеров, даже запущенных):

На исходном сервере (где контейнер сейчас работает)

  1. Создайте экспорт (рекомендуется остановить контейнер для консистентности, но можно и на живую):

    Вариант А — остановить (самый безопасный):

    incus stop cont-incus-yuno-1
    incus export cont-incus-yuno-1 cont-yuno-backup.tar.gz
    incus start cont-incus-yuno-1    # можно сразу запустить обратно, если нужно
    

    Вариант Б — на живую (быстрее, но есть небольшой риск несогласованности файловой системы):

    incus export cont-incus-yuno-1 cont-yuno-backup.tar.gz
    

    Полезные флаги (добавляйте по желанию):

    • --instance-only — очень рекомендуется, если не нужны снапшоты (файл будет намного меньше и быстрее создаваться)
    • --optimized-storage — если хранилище позволяет (zfs/btrfs), делает ещё меньше размер

    Пример с флагами (самый популярный вариант):

    incus export cont-incus-yuno-1 cont-yuno-backup.tar.gz --instance-only --optimized-storage
    

    Получится файл cont-yuno-backup.tar.gz (или как вы его назовёте) размером от нескольких сотен МБ до десятков ГБ — зависит от содержимого контейнера.

  2. Перенесите файл на другой компьютер любым удобным способом:

    • scp
    • rsync
    • флешка / внешний диск
    • облако (если объём позволяет)
    # пример через scp
    scp cont-yuno-backup.tar.gz user@новый-ip:/home/user/
    

На целевом сервере (куда переносите)

  1. Убедитесь, что Incus установлен и работает той же или новее версии (экспорт с более новой версии на старую часто не работает).

  2. Если контейнер использует нестандартные профили (кроме default), создайте их заранее на новом сервере:

    incus profile list          # посмотреть, какие профили есть
    # если нужно — скопируйте конфиг профиля и создайте:
    incus profile create myprofile
    incus profile edit myprofile
    
  3. Импортируйте:

    incus import cont-yuno-backup.tar.gz cont-incus-yuno-1
    

    Или с другим именем, если хотите:

    incus import cont-yuno-backup.tar.gz yuno-new
    
  4. ВНИМАНИЕ ! Если просто делаете копию на том же сервере (давая копии контейнера другое имя), нужно поменять MAC-адрес контейнера.
    Сначала посмотрите какой MAC-адрес используется у исходного контейнера:

incus config show cont-yuno-backup | grep -i hwaddr

Допустим, вывод показал такой адрес: 10:66:6a:41:df:bc
Тогда, с помощью команд задать новый адрес для контейнера-копии
Шаг 1. Удалить старый volatile MAC

incus config unset yuno-new volatile.eth0.hwaddr

Шаг 2. Задать новый MAC явно

incus config device set yuno-new eth0 hwaddr=10:66:6a:41:df:bd

То есть, даём адрес, которого нет ни у одного контейнера, в данном случае просто заменили последнюю16-ричную цифру.

  1. Запустите:

    incus start cont-incus-yuno-1
    # или
    incus start yuno-new
    
  2. Проверьте, что всё работает:

    incus list
    incus console cont-incus-yuno-1   # или incus exec ... -- bash
    

Полезные замечания

  • Если после импорта контейнер не стартует из-за MAC-адреса → удалите/сгенерируйте новый:
# 1. Посмотреть, какой именно MAC "застрял" в базе Incus
incus info incus-yuno-std | grep volatile.eth0.hwaddr
# или полная картина
incus config show incus-yuno-std --expanded | grep hwaddr

# 2. Самый простой и безопасный способ — попросить Incus сгенерировать новый MAC
incus config unset incus-yuno-std volatile.eth0.hwaddr
# или явно задать новый (можно опустить — сам сгенерирует)
# incus config set incus-yuno-std volatile.eth0.hwaddr 00:16:3e:xx:yy:zz

# 3. Попробовать запустить
incus start incus-yuno-std
  • Если на новом сервере другое хранилище (например, был zfs, стал dir или btrfs) — импорт обычно проходит нормально, но иногда нужно указать пул:

    incus import cont-yuno-backup.tar.gz cont-incus-yuno-1 --storage default
    
  • Размер файла и время создания/переноса — главный ограничивающий фактор.

Если контейнер очень большой (>20–30 ГБ) — подумайте, не лучше ли воспользоваться rsync содержимого или incus copy по сети (если есть хоть какая-то связь между серверами).