使用apt在Ubuntu 20.04 LTS上安装LXD
如何在Ubuntu 20.04 LTS Linux上安装LXD纯容器管理程序,以惊人的速度运行未修改的Debian/Ubuntu/CentOS/Fedora/Arch Linux操作系统?
如何在Ubuntu Linux服务器上设置和使用LXD?
如何在Ubuntu云服务器上安装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。
为什么在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
要安装LXD的稳定分支,请运行以下apt命令或snap命令:
sudo apt install lxd
为了进行测试,目的是选择最新版本,否则在下一个屏幕上选择4.0作为稳定服务器
我选择4.0版快照轨道。
另外,我们可以直接使用snap命令,如下所示:
sudo snap install lxd --channel=4.0/stable
步骤2将用户添加到LXD组以进行管理
无需成为root用户即可管理LXD守护程序。
要管理LXD服务器,请在Ubuntu Linux上使用adduser命令将用户名添加到lxd组:
sudo adduser {USERNameHere} lxd sudo adduser Hyman lxd sudo adduser $USER lxd
组成员资格仅在下一次登录或新的ssh会话启动时应用。
因此,您需要关闭并重新打开用户/ssh会话,或者使用以下newgrp命令立即申请组成员身份:
newgrp lxd
使用id命令验证成员资格详细信息:
id
使用lxc命令对其进行测试:
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 theitroadzfs
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.11容器
您的容器在这里称为alpine-c1:
lxc launch images:alpine/3.11/amd64 alpine-c1
CentOS Linux 8容器
lxc launch images:centos/8/amd64 cenots-8-c2
Ubuntu Linux 16.04或18.04或20.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
Debian Linux 9.x Stretch或10.x容器
lxc launch images:debian/stretch/amd64 debian-9-c6 lxc launch images:debian/10/amd64 debian-10-www
Arch Linux容器
lxc launch images:archlinux/amd64 arch-c7
Gentoo Linux容器
lxc launch images:gentoo/amd64 gentoo-c8
Fedora Linux 31容器
lxc launch images:fedora/31/amd64 fedora-31-c9
OpenSUSE Linux 15.0容器
lxc launch images:opensuse/15.1/amd64 opensuse15-1-c10
Oracle Linux 8.x虚拟机
lxc launch images:oracle/8/amd64 oracle-8-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-8-c2 -- date lxc exec cenots-8-c2 -- ip a lxc exec ubuntu-focal-c5 -- ip r lxc exec fedora-31-c9 -- dnf -y update lxc exec debian-10-www -- cat /etc/debian_version
如何在容器中访问bash shell
要在名为debian-10-www的容器中获得登录/shell访问,请执行:
lxc exec {container-name} {shell-name} lxc exec debian-10-www bash lxc exec alpine-c1 sh
现在,您可以运行命令或安装软件包。
例如,在容器内使用apt命令/apt-get命令:
# cat /etc/*issue* # apt update # apt upgrade
只需执行exit即可返回主机:
# exit
启动我的容器命令
lxc start {container-name} lxc start oracle-8-c11
停止我的容器命令
lxc stop {container-name} lsc stop alpine-c1
重新启动我的容器
$ lxc restart {container-name} lxc restart gentoo-c8
删除LXD容器
命令如下。
请小心,因为LXD容器会立即删除,没有任何确认提示。
换句话说,请始终保留备份:
lxc delete {container-name} lxc delete ubuntu-xenial-c3
删除容器时可能会出现以下错误:
容器当前正在运行,请先停止运行或通过。
要解决此问题:
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