如何使用 apt 在 Ubuntu 20.04 LTS 上安装 LXD
简介:LXD 容器系统由 Ubuntu 团队支持和创建。它的性能比 Vmware ESX 快 25-30%。密度是 10 倍,且零延迟。可以使用 LXD 将 Linux VM 直接移动到容器中,而无需修改应用程序或管理流程。您可以在容器中运行 CentOS、Arch Linux、Fedora Linux、OpenSUSE、Gentoo、Ubuntu、Debian 和许多其他 Linux 发行版。本页介绍如何在 Ubuntu 20.04 LTS 上安装和配置 LXD。
教程详细信息 | |
---|---|
难度等级 | 中间的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 路西法 |
操作系统兼容性 | Debian • Mint • Pop!_OS • Ubuntu |
预计阅读时间 | 8 分钟 |
为什么在 Ubuntu 20.04 上使用 LXD?
LXD 是一种容器体验,提供 ReST API 来管理 LXC 容器。可以使用 LXD执行以下操作:
- 非特权容器(设计安全)
- 可扩展
- 实时迁移
- 对 CPU、内存、磁盘/网络 I/O、内核模块等进行高级资源控制)
- GPU、USB、NIC、磁盘等的硬件直通支持
- 运行容器
- 更新容器
- 集群支持
- 易于管理
- 在容器内安装不同的 Linux 发行版
- 管理容器资源,如存储卷、映射目录、内存/磁盘 I/O 限制、网络等
在 Ubuntu 20.04 LTS 上安装并设置 LXD
让我们看一下设置 LXD 的所有分步说明:
步骤 1 – 在 Ubuntu 20.04 LTS Linux 服务器上安装 LXD
使用apt 命令或apt-get 命令确保在 Ubuntu 上安装了所有安全更新,输入:
$ sudo apt update
$ sudo apt upgrade
apt 命令使用 snap 方法。因此,请从 snap 命令本身开始。
要安装 LXD 的稳定分支,请运行以下apt 命令或 snap 命令:
$ sudo apt install lxd
为了进行测试,目的选择最新版本,否则在下一个屏幕上选择 4.0 作为稳定的服务器
我选择的是4.0版本的Snap Track。
$ sudo snap install lxd --channel=4.0/stable#
## OR ##
$ sudo snap install lxd --channel=5.0/stable
# or grab the latest stable #
$ snap install lxd --channel=latest/stable
步骤 2 – 将用户添加到 LXD 组以便管理
无需成为 root 用户即可管理 LXD 守护进程。要管理 LXD 服务器,请使用 Ubuntu Linux 上的 adduser 命令将您的用户名添加到 lxd 组:
组成员资格仅在下次登录或启动新的 ssh 会话时应用。因此,您需要关闭并重新打开您的用户/ssh 会话,或使用以下 newgrp 命令立即申请组成员资格:使用id 命令
验证成员资格详细信息:
使用 lxc 命令进行测试:
$ sudo adduser {USERNameHere} lxd
$ sudo adduser vivek lxd
$ sudo adduser $USER lxd
$ newgrp lxd
$ id
$ lxc list
看看,不再有权限错误和非特权用户管理 LXD
步骤 3 - 设置并配置 LXD 网络和存储选项
现在我们已经安装了 LXD,是时候设置 LXD 服务器了。您必须配置网络和存储选项,例如目录、ZFS、Btrfs 等,输入:
$ sudo lxd init
接下来,您必须回答一系列有关如何配置 LXD 服务器的问题,包括存储和网络选项。这是我为 ZFS 和 10.105.28.1/24 NATed 子网设置的示例会话。请根据需要随意选择选项:
我们可以通过输入以下命令来验证信息:
$ lxc profile list
$ lxc profile show default
$ lxc network list
$ lxc network show lxdbr0
$ lxc storage list
$ lxc storage show examplezfs
Gif.01:探索我们的 LXD 服务器存储和网络配置文件
步骤 4 - 列出各种 Linux 发行版的内置 LXD 映像
要列出所有 LXD 图像,请运行:
$ lxc image list images:
$ lxc image list images: | grep -i centos
$ lxc image list images: | grep -i ubuntu
$ lxc image list images: | grep -i debian
步骤 5 - 创建你的第一个 Linux 容器
创建第一个容器非常简单。语法如下:
$ lxc launch images:{distro}/{version}/{arch} {container-name-here}
Alpine Linux 3.17 容器
此处的容器名为 alpine-c1:
$ lxc launch images:alpine/3.17/amd64 alpine-c1
CentOS Linux 9 Stream 容器
$ lxc launch images:centos/9-Stream/amd64 cenots-9-c2
Ubuntu Linux 16.04、18.04、20.04 或 22.04 LTS 容器
$ lxc launch images:ubuntu/xenial/amd64 ubuntu-xenial-c3
$ lxc launch images:ubuntu/bionic/amd64 ubuntu-bionic-c4
$ lxc launch images:ubuntu/focal/amd64 ubuntu-focal-c5
$ lxc launch images:ubuntu/jammy/amd64 ubuntu-jammy-c6
Debian Linux 10.x / 11.x 容器
$ lxc launch images:debian/10/amd64 debian-10-www
$ lxc launch images:debian/11/amd64 debian-11-php8
Arch Linux 容器
$ lxc launch images:archlinux/amd64 arch-c7
Gentoo Linux 容器
$ lxc launch images:gentoo/amd64 gentoo-c8
Fedora Linux 37 容器
$ lxc launch images:fedora/37/amd64 fedora-37-c9
OpenSUSE Linux 15.x 容器
lxc launch images:opensuse/15.4/amd64 opensuse15-4-c10
Oracle Linux 9.x 虚拟机
lxc launch images:oracle/9/amd64 oracle-9-c11
步骤 6 - 使用 lxc CLI 管理基于 LXD 的容器
让我们深入了解管理容器的基本命令
列出 Linux 容器实例
我们可以使用以下语法和grep 命令/ egrep 命令作为管道列出现有容器:
lxc list --fast
lxc list | grep RUNNING
lxc list | grep STOPPED
lxc list | grep -i opensuse
lxc list "*c1*"
lxc list "*c2*"
lxc list
如何在容器中执行/运行指定的命令
我们使用exec命令在容器中运行或执行命令,如下所示:
$ lxc exec containerName -- command
$ lxc exec containerName -- /path/to/script
$ lxc exec containerName --env EDITOR=/usr/bin/vim -- command
### run date, ip a, ip rm and other commands on various containers ###
$ lxc exec cenots-9-c2 -- date
$ lxc exec cenots-9-c2 -- ip a
$ lxc exec ubuntu-focal-c5 -- ip r
$ lxc exec fedora-37-c9 -- dnf -y update
$ lxc exec debian-10-www -- cat /etc/debian_version
如何在容器中获取 bash shell 访问权限
想要在名为 debian-10-www 的容器中获得登录/shell 访问权限,请输入:
现在您可以运行命令或安装软件包。例如,在容器内使用apt 命令/ apt-get 命令:
只需输入 exit 即可返回主机:
$ lxc exec {container-name} {shell-name}
$ lxc exec debian-10-www bash
$ lxc exec alpine-c1 sh
# cat /etc/*issue*
# apt update
# apt upgrade
# exit
启动我的容器命令
$ lxc start {container-name}
$ lxc start oracle-8-c11
停止我的容器命令
$ lxc stop {container-name}
$ lxc stop alpine-c1
重启我的容器
$ lxc restart {container-name}
$ lxc restart gentoo-c8
删除 LXD 容器
命令如下。请小心,因为 LXD 容器会立即删除,没有任何确认提示。换句话说,请始终保留备份:
删除容器时可能会出现以下错误:
$ lxc delete {container-name}
$ lxc delete ubuntu-xenial-c3
容器当前正在运行,请先停止它或者通过-force。
修复这个问题:
$ lxc stop ubuntu-xenial-c3 && lxc delete ubuntu-xenial-c3
如何显示有关 LXD 服务器和容器的信息?
键入以下命令:
$ lxc info
$ lxc info {container-name}
$ lxc info opensuse15-1-c10
从容器中拉取文件
$ lxc file pull {continer-nane}/{path/to/file} {/path/to/local/dest}
$ lxc file pull ubuntu-xenial-c3/var/www/nginx/app/config.php .
将文件推送到容器
$ lxc file push {/path/to/file} {continer-nane}/path/to/dest/dir/
$ lxc file push config.php ubuntu-xenial-c3/var/www/nginx/app/
步骤 7 - 获取有关 lxc 命令的帮助
获得帮助很容易:
$ lxc --help
$ lxc {command} --help
$ lxc list --help
结论
在本深入教程中,您学习了如何使用apt 命令在 Ubuntu 20.04 LTS 服务器上安装和设置 LXD以运行各种 Linux 发行版。有关更多信息,请参阅此处的 lxc 命令和文档。
- 在 Ubuntu 16.04 LTS 上安装 LXD 容器管理程序
- 如何在 Fedora Linux 26 上安装和设置 LXC(Linux 容器)
- 在KVM或Xen虚拟机下设置LXD容器
- 列出 LXD(Linux 容器)中的 VM 映像
- 升级由 Ubuntu/Debian 或 CentOS Linux 驱动的 LXD 容器
- 在 Linux 启动时自动启动 LXD 容器
- 重命名 LXD / LXC 容器的命令
- 在配置启动时在 Linux 容器 (LXD) 实例上运行命令
- 在云实例启动时,使用 shell 脚本中的 LXD(Linux 容器)创建 VM
- 将 LXD VM 移动/迁移到 Linux 上的另一台主机
- Fedora 安装并设置 LXD
- CentOS 7.x 安装并设置 LXD 服务器
- 在 Ubuntu 18.04 LTS 上安装 LXD 纯容器管理程序
- 使用 lxc 命令为 LXD 创建快照
- 在 CentOS/RHEL 8 上设置并安装 LXD
- Ubuntu 20.04 LTS 安装并设置 LXD
- 完整备份和恢复 LXD 容器
- 禁用 LXD 桥上的防火墙和 NAT 规则
- 使用 lxc 删除或移除 LXD 容器
- Linux 文件系统错误:事务失败解决方案
- Ubuntu 22.04 LTS 设置 LXD
- Debian 11 设置 LXD