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-init-问题

查找并启动 LXD 分发映像

列出所有 Ubuntu 映像:

lxd-ubuntu-图像

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

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

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

lxd 用户活动组

现在,lxc 命令不需要 sudo.

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

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

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

lxd-launch-debian-9

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

管理 LXD 容器

列出所有容器:

lxd-lxc-列表

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

停止容器:

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

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

要启动它:

要在容器内移动:

lxd-shell-debian

您可以使用“sudo apt install”并执行您在普通 Linux 发行版上会执行的任何其他操作,例如,配置 Apache 服务器。 当您想退出容器时,只需键入:

向/从 LXD 容器传输文件

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

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

要上传目录而不是文件:

例子:

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

例子:

结论

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

订阅我们的时事通讯!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅