如何在CentOS Linux 7.x Server上设置和使用LXD
时间:2020-01-09 10:39:43 来源:igfitidea点击:
如何在CentOS Linux 7.x上安装,配置和设置LXD?
说明:Linux容器提供的环境与您从VM获得的环境尽可能接近,但没有运行单独的内核并模拟所有硬件所带来的开销。
您可以运行自己喜欢的Linux发行版,例如Debian,Ubuntu,Arch,Gentoo,CentOS等。
LXD不是LXC的重写。LXD通过liblxc及其Go绑定使用LXC。
本教程展示了如何在CentOS Linux 7.x服务器上设置和使用LXD。
在CentOS Linux 7.x上设置和使用LXD的过程
- 在CentOS上安装snapd
- 在CentOS Linux上安装lxd
- 配置LXD存储,网络和其他内容
- 创建您的第一个虚拟机
步骤1更新CentOS 7.x服务器
运行以下yum命令:
$ sudo yum update ## reboot Linux box if kernel updated ## $ sudo reboot
步骤2在CentOS 7.x上配置EPEL仓库
在CentOS Linux和RHEL 7.x上安装EPEL仓库的命令:
$ sudo yum install epel-release $ sudo yum update
步骤3如何为CentOS Linux启用和配置COPR存储库
执行以下yum命令:
$ sudo yum install yum-plugin-copr $ sudo yum copr enable ngompa/snapcore-el7
步骤4安装LXD
在CentOS 7 Linux上安装LXD:
$ sudo yum install snapd $ sudo systemctl enable --now snapd.socket
步骤5为LXD配置CentOS Linux内核
您需要使用grubby命令。
它是一个命令行工具,用于更新和显示有关各种体系结构特定的引导程序的配置文件的信息:
$ grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)" $ grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)" $ sudo sh -c 'echo "user.max_user_namespaces=3883" > /etc/sysctl.d/99-userns.conf' $ sudo reboot
步骤5在CentOS上安装LXD
运行以下命令:
$ sudo snap search lxd $ sudo snap install lxd $ sudo ln -s /var/lib/snapd/snap /snap
验证一下:
$ snap list $ snap services
步骤5配置LXD
首先,您需要将自己添加到LXD组。
将用户添加到Linux组的命令如下:
$ sudo usermod -a -G lxd Hyman
使用id命令进行验证:
$ newgrp lxd $ id
确保我们可以与lxd服务器对话:
$ lxc list
要在CentOS 7上配置LXD,请运行:
$ lxd init
步骤6建立并启动您的第一个容器
您可以使用以下命令列出所有容器镜像:
$ lxc image list images: $ lxc image list images: | grep -i centos $ lxc image list images: | grep -u ubuntu
如何创建和设置第一个容器
要从镜像创建和启动容器,请使用launch命令,如下所示:
lxc launch images:{distro}/{version}/{arch} {container-name-here}
让我们看一些示例,根据您的需要从各种Linux发行镜像创建和启动容器。
CentOS Linux 7容器
$ lxc launch images:centos/7/amd64 cenots-db
要访问VM虚拟机 /容器:
$ lxc list $ lxc exec centos-db bash
Ubuntu Linux 16.4 xenial LTS VM
$ lxc launch images:ubuntu/xenial/amd64 ubuntu-nginx
Fedora Linux 28虚拟机
$ lxc launch images:fedora/28/amd64 fedora27-c1
现在,我已经在CentOS 7.x上设置并使用LXD,下一步呢?
列出您的容器:
lxc list
要启动/停止/重新启动容器,请使用:
lxc start container-name lxc stop container-name lxc restart container-name
删除容器
lxc delete container-name lxc delete nginx-c1
获取有关您的容器的信息:
$ lxc info container $ lxc info centos-db
设置iptables规则以重定向流量(在主机上执行命令)
语法如下,将来自公共IP 104.20.186.5的443的流量重定向到容器IP 10.86.112.210:443
iptables -t nat -I PREROUTING -i eth0 -p TCP -d 104.20.186.5 --dport 443 -j DNAT --to-destination 10.86.112.210:443
CentOS使用了防火墙。
要查找默认的防火墙区域,请运行:
$ sudo firewall-cmd --get-default-zone `public`
为公共区域打开端口443
$ sudo firewall-cmd --zone=public --add-service=https --permanent
将端口443转发到LXD服务器10.86.112.210:443
$ sudo firewall-cmd --permanent --zone=public --add-forward-port=port=443:proto=tcp:toport=443:toaddr=10.86.112.210
重新加载fireall
$ sudo firewall-cmd --reload
测试一下。
打开浏览器并输入url:
https://104.20.186.5
lxc命令列表
命令 | 描述 |
---|---|
alias | 管理命令别名 |
cluster | 管理集群成员 |
config | 管理容器和服务器配置选项 |
console | 追加到容器控制台 |
copy | 在LXD实例内部或之间复制容器 |
delete | 删除容器和快照 |
exec | 执行容器中的命令 |
export | 导出容器备份 |
file | 管理容器中的文件 |
help | 有关任何命令的帮助 |
image | 管理镜像 |
import | 导入容器备份 |
info | 显示容器或服务器信息 |
launch | 从镜像创建并启动容器 |
list | 列出容器 |
move | 在LXD实例内部或之间移动容器 |
network | 管理容器并将其追加到网络 |
operation | 列出,显示和删除后台操作 |
profile | 管理个人资料 |
publish | 将容器发布为镜像 |
remote | 管理远程服务器列表 |
rename | 重命名容器和快照 |
restart | 重新启动容器 |
restore | 从快照恢复容器 |
snapshot | 创建容器快照 |
start | 启动容器 |
stop | 停止容器 |
storage | 管理存储池和卷 |
version | 显示本地和远程版本 |
查看命令帮助:
lxc --help lxc command --help lxc stop --help