LXD为打了linux发行版提供镜像,支持多种存储后端和网络类型,被称为下一代容器和虚拟机管理器,为容器内或作为虚拟机运行linux系统提供沉浸式体验。支持用户使用多种方式管理容器和虚拟机,可以用lxc客户端或命令行、REST API甚至第三方集成。
LXD是基于图像的适合linux发行版的图像。提供REST API和lxc命令工具来与容器交互,为各种存储后端、存储卷和存储池提供支持。网络管理是通过创建桥接网络和跨主机隧道实现的。对CPU、RAM、磁盘使用情况、块I/O和内核等资源的高级控制。灵活且扩展,可以在服务器上部署容器并配置一个可以在各个节点上聚合数千个容器的集群。
LXD和lxc有所不同,LXC是linux容器留下的操作系统虚拟化技术,用强大API及其他感觉让用户可以在单个服务器中无缝创建和管理容器/虚拟机。LXC由模板、工具语言和库绑定组成。在RHEL的linux发行版上创建和管理LXC容器。先更新软件包再设置SElinux为宽容模式:
$ sudo dnf update
设置宽容模式:
$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
重启服务器:
$ sudo reboot
确认SElinux的状态:
$ getenforce
安装EPEL存储库:
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
或者
$ sudo yum install epel-release
切换root用户:
$ su -
添加参数:
$ grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
$ grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)"
$ echo "user.max_user_namespaces=3883" | sudo tee -a /etc/sysctl.d/99-userns.conf
继续启用Snap。在RHEL8中安装LXD可以直接用snap包安装:
$ sudo dnf install snapd
安装snapd守护程序或服务以及其他 Python 依赖项:
sudo dnf install snapd
安装后继续启用主snap通信插座:
$ sudo systemctl enable --now snapd.socket
创建从/var/lib/snapd/snap到/snap的符号链接来启用经典支持。
$ sudo ln -s /var/lib/snapd/snap /snap
重启系统更新捕捉路径:
$ sudo reboot
安装LXD:
$ sudo snap install —-classic lxd
安装LTS版本:
$ sudo snap install lxd --channel=4.0/stable
如果不想切换到sudo用户下直接执行lxc,可以添加当前用户到lxd组:
$ sudo usermod -aG lxd $USER
通过列出用户所属全部组验证用户是否添加完成:
$ groups tecmint
运行newgrp(在登录会话期间更改当前组ID,把当前组ID设置为命名组lxd):
$ newgrp lxd
在创建和管理LXD容器钱,用命令来初始化LXD环境:
$ lxc init
后续可以自行设置环境,直接应用默认设置也可以。