在Ubuntu 18.04 LTS上安装LXD纯容器虚拟机管理程序
如何在Ubuntu 18.04 LTS上安装LXD纯容器管理程序,以惊人的速度运行未修改的Debian/Ubuntu/CentOS Linux操作系统VM?
如何在Ubuntu Linux服务器上设置和使用LXD?
说明:LXD容器管理程序由Ubuntu团队支持和创建。
与ESX相比,它的性能提高了25%。
密度为10倍,零延迟。
无需修改应用程序或管理流程,就可以使用LXD将Linux VM直接移动到容器中。
Ubuntus LXD是一个纯容器虚拟机管理程序,它以惊人的速度运行带有VM风格操作的未修改的Linux来宾操作系统。
您可以在容器中运行CentOS,Arch Linux,Fedora Linux,OpenSUSE,Gentoo,Ubuntu,Debian和其他Linux发行版。
本教程显示如何在Ubuntu Linux 18.04 LTS上安装和配置LXD纯容器管理程序。
为什么要使用LXD?
LXD是一个容器管理程序,提供ReST API来管理LXC容器。
LXD可以做以下事情:
- 运行容器
- 更新容器
- 集群支持
- 在容器内安装其他Linux发行版
- 管理容器资源,例如存储卷和网络
在Ubuntu 18.04 LTS上设置LXD
在Ubuntu Linux 18.04 LTS上设置和使用LXD的过程如下:
- 安装lxd
- 设置和配置LXD网络和存储
- 创建您的第一个容器
- 启动一个容器
让我们详细了解所有步骤。
在Ubuntu 18.04 LTS上安装LXD纯容器虚拟机管理程序
在LXD上执行以下apt-get命令或apt命令:
$ sudo sh -c 'apt update && apt upgrade' $ sudo apt install lxd
如何将用户添加到LXD组以进行管理
无需成为root用户即可管理LXD守护程序。
要管理LXD服务器,请在Ubuntu Linux上使用adduser命令将用户名添加到lxd组:
$ sudo adduser {USERNameHere} lxd $ sudo adduser Hyman lxd
请注意,组成员资格仅适用于登录或新的ssh会话,然后您需要关闭并重新打开用户/ssh会话,或使用以下命令来避免出现问题:
$ newgrp lxd
使用id命令验证它:
$ id
设置ZFS(可选)
我建议您使用ZFS以及基于DHCP的IP网络,以简化每个VM的设置。
ZFS提供了制作快照和其他高级功能的快速选项:
$ sudo apt install zfsutils-linux
有关更多信息,请参见如何在Ubuntu服务器上安装ZFS。
配置LXD存储和网络选项
现在该设置LXD服务器了。
您必须配置网络和存储选项,例如目录,ZFS,Btrfs等:
$ sudo lxd init
您必须回答有关如何配置LXD服务器的一系列问题。
这是一个示例会话:现在已设置并配置LXD。
您可以使用以下命令进行验证:
$ lxc list $ lxc info | more
创建您的第一个Linux容器
要列出所有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
如何在运行LXD的Ubuntu 18.04 LTS上创建和使用第一个容器
要使用镜像创建和启动容器,请使用启动命令:
lxc launch images:{distro}/{version}/{arch} {container-name-here}
让我们看一些示例,根据您的需要从各种Linux发行镜像创建和启动容器。
Alpine Linux 3.8 VM
$ lxc launch images:alpine/3.8/amd64 alpine-c1
CentOS Linux 7容器
$ lxc launch images:centos/7/amd64 cenots-c2
Ubuntu Linux 16.04或18.04或20.04 LTS容器
$ lxc launch images:ubuntu/bionic/amd64 ubuntu-nginx-c3 $ lxc launch images:ubuntu/eoan/amd64 ubuntu-nginx-c4 $ lxc launch images:ubuntu/focal/amd64 ubuntu-nginx-c5
Debian Linux 9.x Stretch或10.x容器
$ lxc launch images:debian/stretch/amd64 debian9-c4
或者
$ lxc launch images:debian/10/amd64 debian10-www01
Arch Linux容器
$ lxc launch images:archlinux/amd64 arch-c5
Gentoo Linux容器
$ lxc launch images:gentoo/amd64 gentoo-c6
Fedora Linux 30容器
$ lxc launch images:fedora/30/amd64 fedora30-c7
OpenSUSE Linux 15.0容器
$ lxc launch images:opensuse/15.0/amd64 opensuse-stable-c8
Oracle Linux 7.x虚拟机
$ lxc launch images:oracle/7/amd64 oracle7-c9
如何列出我的所有容器?
列出现有容器:
$ lxc list --fast $ lxc list | grep RUNNING $ lxc list | grep STOPPED $ lxc list | grep -i ubuntu $ 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-c2 -- date $ lxc exec cenots-c2 -- ip a $ lxc exec ubuntu-nginx-c3 -- ip r $ lxc exec fedora28-c7-- dnf update $ lxc exec debian9-c4 -- cat /etc/debian_version
如何在容器中访问bash shell
要在名为file-server的容器中登录并获得shell程序访问权,请执行:
$ lxc exec debian9-c4 bash
现在,您可以运行命令或安装软件包:
# cat /etc/*issue* # apt-get update # apt-get upgrade
要简单地从容器退出,只需执行exit:
# exit
如何启动容器?
使用以下cli启动容器:
$ lxc start containerName $ lxc start foo $ lxc start cenots-c2 opensuse-stable-c8
如何停止我的容器?
使用以下语法停止容器:
$ lxc stop containerName $ lxc stop foo $ lxc stop cenots-c2 opensuse-stable-c8
如何重新启动容器?
是否出于任何原因想要重新启动容器?
尝试:
$ lxc restart containerName $ lxc restart foo $ lxc restart cenots-c2 opensuse-stable-c8
如何删除容器?
该命令是(请谨慎操作,因为LXD容器会在没有任何确认提示的情况下立即删除,即保留备份):
$ lxc delete containerName $ lxc delete foo $ lxc delete cenots-c2
删除容器时可能会出现以下错误:
容器当前正在运行,请先停止运行或通过。
要解决此问题:
$ lxc stop cenots-c2 && lxc delete cenots-c2
如何在LXD服务器和容器上显示信息?
执行以下命令:
$ lxc info $ lxc info containerName $ lxc info opensuse-stable-c8