Я хотел бы понять, в чем разница между получением нового базового изображения (например, 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 устаревших пакетов, которые необходимо обновить, на время написания), а также базовые изображения, которые, как представляется, уже применяют обновления.
Как сказано, при запуске контейнера из указанного базового изображения потребуется переустановка всей вашей настраиваемой конфигурации, пакетов , и другие изменения и т. д.
Я понимаю, что этот ответ приходит поздно, но я расскажу, что мой (ограниченный) опыт работы с 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 устаревших пакетов, которые необходимо обновить, на время написания), а также базовые изображения, которые, как представляется, уже применяют обновления.
Как сказано, при запуске контейнера из указанного базового изображения потребуется переустановка всей вашей настраиваемой конфигурации, пакетов , и другие изменения и т. д.