原标题:使用 LXD 容器运行 Ubuntu Core
Ubuntu Core 是完全基于 snap 包构建,并且完全事务化的 Ubuntu 版本。
-- Stéphane Graber
本文导航
◈ Ubuntu Core 是什么? 01%
◈ 环境需求 09%
◈ 创建一个 Ubuntu Core 容器 13%
◈ 更新容器 33%
◈ 安装 Snap 软件包 49%
◈ 写在最后 82%
◈ 附录 89%
编译自 | https://insights.ubuntu.com/2017/02/27/ubuntu-core-in-lxd-containers/
作者 | Stéphane Graber
译者 | aiwhj
Ubuntu Core 是什么?
Ubuntu Core 是完全基于 snap 包构建,并且完全事务化的 Ubuntu 版本。
该系统大部分是只读的,所有已安装的应用全部来自 snap 包,完全使用事务化更新。这意味着不管在系统更新还是安装软件的时候遇到问题,整个系统都可以回退到之前的状态并且记录这个错误。
最新版是在 2016 年 11 月发布的 Ubuntu Core 16。
注意,Ubuntu Core 限制只能够安装 snap 包(而非 “传统” 软件包),并且有相当数量的 snap 包在当前环境下不能正常运行,或者需要人工干预(创建用户和用户组等)才能正常运行。随着新版的 snapd 和 “core” snap 包发布,Ubuntu Core 每周都会得到改进。
环境需求
就 LXD 而言,Ubuntu Core 仅仅相当于另一个 Linux 发行版。也就是说,snapd 需要挂载无特权的 FUSE 和 AppArmor 命名空间以及软件栈,像下面这样:
◈ 一个新版的使用 Ubuntu 官方内核的系统
◈ 一个新版的 LXD
创建一个 Ubuntu Core 容器
当前 Ubuntu Core 镜像发布在社区的镜像服务器。你可以像这样启动一个新的容器:
stgraber@dakara:~$ lxc launch images:ubuntu-core/16ubuntu-core
Creatingubuntu-core
Startingubuntu-core
这个容器启动需要一点点时间,它会先执行第一阶段的加载程序,加载程序会确定使用哪一个镜像(镜像是只读的),并且在系统上设置一个可读层,