Я хотел бы понять, в чем разница между получением нового базового образа (например, Ubuntu 16.04) и возможностью обновления запущенных контейнеров.
Нужно ли обновлять контейнеры самостоятельно или я могу полагаться на обновляемое изображение? Или это развязано, как только контейнер будет создан?
Я сам обновлял их до сих пор.
Я понимаю, что этот ответ входит поздно, но я совместно использую то, чем мой (ограниченный) опыт с LXD/LXC был к настоящему времени.
Я должен обновить контейнеры сам, или я могу полагаться на обновляемое изображение? Или это отделяется, как только контейнер создается?
Помните, что контейнер является экземпляром на основе изображения. Однако обновляя контейнер (например, выполнение sudo apt-get install <package-name>
) не обновит изображение; только контейнер.
В этом смысле контейнер и изображение становятся "отделенными" (я сказал бы "из синхронизации"). Если Вы хотите изображение, которое имеет изменения, которые Вы внесли в контейнер, то то, что я думаю, что необходимо сделать, является взятием снимок контейнера. Например:
lxc snapshot <container-name> <snapshot-name>
Удобный способ сделать это должно отметить их по дате, так, чтобы можно было более легко определить который снимки использовать. Например, это - путь, которым я делаю его:
tag=$(date +%g.%m.%d-%H%M)
lxc snapshot <container> <snapshot>-$tag
Что я думаю, что Вы доберетесь из нового/недавнего базового изображения (например. ubuntu:lts/amd64
) просто вещи, такие как последние версии пакета, обновления системы защиты, и т.д.
Это наблюдение прибывает из моего опыта, делающего установки Ubuntu от ISO, загруженного с сайта (который начинается с 50 + устаревшие пакеты, которые должны быть обновлены, во время этой записи) по сравнению с базовыми изображениями, которые уже, кажется, применяют обновления.
Однако запуск контейнера из упомянутого базового изображения потребовал бы, чтобы Вы переустановили всю свою пользовательскую конфигурацию, пакеты и другие изменения, и так далее.