返回新闻概述

LXC 2.0.0 版本发布公告

2016 年 4 月 6 日
LXC 团队非常高兴地宣布发布 LXC 2.0!

亮点

  • 所有主要的 LXC 命令现在都已用 C 语言重写
    • lxc-ls
    • lxc-device
    • lxc-copy
  • 新的 lxc-copy 命令接管了 lxc-clone 和 lxc-start-ephemeral 的角色
  • 大大改进了对容器检查点/恢复的支持
  • 完全重新设计了 cgroup 处理,包括对 cgroup 命名空间的支持
  • 各种命令行工具现在更加一致
  • 重新组织了存储后端实现,包括添加了 Ceph RBD 后端
  • 大量错误修复,其中大多数将在接下来的几个错误修复版本中移植到 1.0 和 1.1
  • C API 与以前的版本保持向后兼容,并作为 1.2 发布

此版本由来自 96 位贡献者的贡献(720 次提交)完成。

新的配置选项

  • lxc.ephemeral: 控制容器是否为短暂的,因此将在关闭时销毁
  • lxc.rebootsignal: 允许覆盖为容器重启发送的信号
  • lxc.hook.destroy: 在容器销毁时调用新的钩子
  • lxc.hook.stop: 在命名空间拆卸之前,在主机上下文中运行,并引用容器
  • lxc.init_uid: 由 lxc-execute 用于设置替代用户
  • lxc.init_gid: 由 lxc-execute 用于设置替代组
  • lxc.monitor.unshare: 允许在运行任何钩子之前取消共享挂载命名空间

新功能

  • API
    • API 版本为 1.2,与 1.1 和 1.0 完全向后兼容
    • 新符号
      • 新的 migrate() 符号作为 checkpoint() 的替代方法,使用 migrate_opts 结构来简化添加
    • python3
      • 支持将存储后端传递给 create()
    • lua
      • 添加对 get_ips() 的支持
      • 添加对 get_interfaces() 的支持
      • 添加对 rename() 的支持
  • 核心
    • cgfsng: 针对最近的 Linux 内核的新 cgroup 后端驱动程序
    • cgroup: 对新的 cgroup 层次结构的部分支持
    • cgroup: 对 cgroup 命名空间的支持
    • checkpoint: 支持对默认 LXC 容器进行检查点/恢复
    • checkpoint: 支持对无特权容器进行检查点/恢复
    • checkpoint: 对页面服务器的支持
    • config: lxc.aa_profile: 现在支持“未更改”值
    • config: lxc.init_cmd: 现在支持参数
    • config: lxc.network.macvlan.mode: 添加了对“passthru”模式的支持
    • config: lxc.rootfs.backend: 允许覆盖存储后端(绕过自动检测)
    • config: 新的 nesting.conf 配置文件用于设置容器嵌套
    • hooks: 新的 LXC_CGNS_AWARE 环境变量,如果 LXC 支持 cgroup 命名空间,则设置为 1(但内核可能不支持)
    • hooks: 新的 LXC_SRC_NAME 环境变量在克隆钩子中设置,其中包含原始容器名称
    • hooks: 新的 LXC_TARGET 环境变量设置了容器目标(停止或重启)
    • logging: 更新了日志时间戳,使其更具可读性
    • lxc-usernet: 支持使用 veth 接口而无需桥接的容器
    • lxc-usernet: 支持基于组的配额(使用 @ 前缀)
    • network: 桥接接口 MTU 现在用作默认容器接口 MTU
    • start: 进程标题现在已重命名,使其更易于阅读
    • storage: 新的 Ceph RBD 存储后端
  • 文档
    • 所有手册页的韩语翻译
  • 命令
    • lxc-attach: 使用中间 pts 设备来防止针对父 shell 的攻击
    • lxc-clone: 支持重命名容器
    • lxc-start-ephemeral: 支持更改绑定挂载目标
  • 初始化系统
    • systemd: 支持实例化服务单元
  • 模板
    • 新的 ALTLinux 模板
    • 新的 Slackware 模板
    • 新的 SPARCLinux 模板
    • alpine: 支持安装额外软件包
    • debian: 默认仅启用“main”,允许通过参数启用其他存储库
    • oracle: 在容器中设置时区
    • openssh: 添加 OpenSSH 支持
    • ubuntu: 新的 -v 选项允许用户设置 debootstrap 变体
    • ubuntu-cloud: 支持供应商数据直通

行为变更

  • lxc-autostart 容器启动顺序现在已反转(以使其正确)
  • 新的 cgfsng cgroup 后端现在是推荐的后端
  • lxc.hook.post-stop 故障现在对容器重启来说是致命的

请注意,此版本中一些命令已经过重大修改。
我们不认为我们的命令行工具是稳定的 ABI,因此您可能需要测试和调整您的脚本,
或者更好的是,将它们移植到使用我们稳定的 C API 或其绑定之一。

弃用警告

“lxc-clone” 和 “lxc-start-ephemeral” 命令现在被视为已弃用,并将由新的 lxc-copy 替换。
这些命令仍然可以通过使用 --enable-legacy 标志进行构建,但是请注意,在使用时它们将打印警告
并且它们将从即将发布的 LXC 版本中移除。

支持

这是第二个 LXC 长期支持版本,我们将支持到 2021 年 6 月 1 日。
LXC 1.0,我们之前的长期支持版本,仍然支持到 2019 年 6 月 1 日。
最后,之前的稳定版本 LXC 1.1 将在 2016 年 9 月 1 日停止使用。

下载

可以在我们的 下载页面 上找到发布的 tarball,我们预计大多数发行版
很快就会发布 LXC 2.0.0 的打包版本。

如果您对单个更改感兴趣,或者只是查看详细的开发历史,
我们的主分支位于 GitHub 上。