LXD/LXC:理解图像并更新

LXD/LXC:理解图像并更新

我想了解获取新的基础映像(例如 Ubuntu 16.04)和 apt 更新正在运行的容器之间有什么区别。

我是否需要自己更新容器,还是可以依赖正在更新的镜像?还是在创建容器后就将其解耦?

到目前为止,我一直在亲自更新它们。

答案1

我意识到这个答案来得晚了,但我还是想分享一下我迄今为止使用 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)中获得的只是诸如最新的软件包版本、安全更新等内容。

这个观察来自于我使用从网站下载的 ISO 安装 Ubuntu 的经验(在撰写本文时,它包含 50 多个需要更新的过时软件包),而使用基础映像则似乎已经应用了更新。

话虽如此,从所述基础映像启动容器将需要您重新安装所有自定义配置、包和其他更改等等。

相关内容