Ubuntu LXD 容器介绍

容器很有用的原因有很多。 它们将应用程序与系统的其余部分隔离开来。 它们是便携式的,易于克隆和/或移动到其他操作系统。 而且,在 Linux 的情况下,它们在任何发行版下都以相同的方式工作,无需进行任何调整。 如果您需要将容器从 RedHat 移动到 Ubuntu,应该只是一个简单的复制操作。

Docker 是一种流行的解决方案,旨在包含单个应用程序: example,一个 MySQL 数据库服务器。 LXD 在某些方面类似,但旨在包含整个操作系统。 这使它在某些情况下很有用。 为了 example,你可以启动一个 LXD 容器,安装一个数据库服务器和一个 http 服务器。 然后您可以在其中创建一个 WordPress 网站。 现在,当您对以前的提供商不满意时,只需将这个 LXD 容器移动到需要它的地方,就可以从云切换到云。 而且由于克隆容器很容易,您甚至可以将您的网站上传到多个云提供商,以创建一个冗余的、高可用性的设置。

LXD 不会像 QEMU 或 VirtualBox 做,这意味着它非常快,提供接近本机的执行速度。

安装和配置 LXD

打开终端并安装 LXD 以及 ZFS 实用程序,这将帮助您在使用容器时加快某些操作并节省磁盘空间。

启动 LXD 配置。

按 ENTER 选择默认值。

为了 Size in GB of the new loop device (1GB minimum) [default=15GB],如果您知道将创建大量容器,则可以选择另一个值,例如“50GB”。

查找并启动 LXD 分发映像

列出所有 Ubuntu 镜像:

lxd-ubuntu-images

会有很多结果。 你可以省略 arch=amd64 如果您需要其他平台的图像,例如 ARM 处理器(Raspberry Pi 设备使用这种架构)。

在上一张图片中,结果是有限的(与 |head) 使其更易于阅读。 突出显示了 Ubuntu 18.04 (84a71299044b) 的指纹。 如果要使用该发行版启动容器,则命令为:

目前这将返回一个权限被拒绝错误。 您需要在“lxd”组中。 您的用户已经添加到该组中,但要使其处于活动状态,您必须注销并重新登录。如果您想避免这种情况,请使用此命令,将“user”替换为您的用户名:

lxd-user-active-groups

现在,lxc 命令无需执行 sudo.

使用非 Ubuntu 发行版启动 LXD 容器

此命令将向您显示可用的其他发行版:

要启动图像,而不是指纹,如果您在该列表中看到可用的别名,您还可以使用别名。

lxd-launch-debian-9

如果在末尾附加一个字符串,则可以为容器选择一个名称:

管理 LXD 容器

列出所有容器:

lxd-lxc-列表

如果您在该实例上有任何正在运行的服务,则“IPV4”列尤其重要。 为了 example, 如果 Apache http 服务器将在实例上运行,在浏览器中输入“10.234.232.246”将显示容器中托管的网站。

要停止容器:

对于非 Ubuntu 发行版,这可能需要很长时间(或失败)。 最好给容器拿个shell,进去之后,进入 systemctl poweroff 阻止它。

如果所有其他方法都失败了,您可以强制停止:

启动它:

要在容器内移动:

lxd-shell-debian

您可以使用“sudo apt install”,然后做任何你在普通 Linux 发行版上会做的事情,例如,配置一个 Apache 服务器。 当您想退出容器时,只需键入:

将文件传输到/从 LXD 容器

要将文件上传到您的容器:

包括要创建的文件的名称,而不仅仅是要上传的目录。 这是一个 example:

要上传目录而不是文件:

例子:

要将目录从容器下载到主操作系统:

例子:

结论

这涵盖了 LXD 容器的基本用法。 还有更高级的功能,例如快照和回滚、对 CPU 和 RAM 等资源施加限制、克隆容器等。 如果我们注意到读者对该主题感兴趣,这些可能会在以后的教程中介绍。

永远不会错过

接收我们最新教程的更新。

注册所有时事通讯。 我想通过电子邮件接收时事通讯。 我们不会共享您的数据,您可以随时取消订阅。 订阅