如何在Ubuntu 16.04 LTS上安装LXD容器管理程序

在Ubuntu Linux 16.04 LTS服务器上如何安装LXD容器管理程序?
如何在Ubuntu中创建并运行Debian/Ubuntu/CentOS Linux操作系统虚拟机?
如何在Ubuntu Linux服务器上设置和使用LXD?
如何在Ubuntu Linux 16.04服务器上搭建并使用LXD?

如何列出系统中所有容器?

$ lxc list --fast
$ lxc list | grep RUNNING
$ lxc list | grep STOPPED
$ lxc list | grep
$ lxc list "*c1*"
$ lxc list "*db*"
$ lxc list

在Ubuntu上安装LXD

输入以下apt-get命令:

$ sudo apt install lxd

或者

$ sudo apt-get install lxd

如何停止LXC容器?

使用以下语法停止容器:

$ lxc stop containerName
$ lxc stop foo
$ lsc stop centos-db opensuse

如何重启LXC容器?

$ lxc restart containerName
$ lxc restart foo
$ lsc restart centos-db opensuse

如何删除容器?

请谨慎操作,因为LXD容器会在没有任何确认提示的情况下立即删除

$ lxc delete containerName
$ lxc delete foo
$ lsc delete centos-db

删除容器时可能会出现以下错误:
The container is currently running, stop it first or pass force.容器当前正在运行,请先停止运行或通过。

要解决此问题,先停止容器再删除:

$ lxc stop centos-db && lxc delete centos-db

为虚拟机配置LXD网络和存储

我们将使用ZFS文件系统,它可以提供快照等功能,同时使用DHCP分配IP地址。

查看zfs文件系统列表

$ sudo zfs list

输出示例:

[sudo] password for jack: 
NAME              USED  AVAIL  REFER  MOUNTPOINT
onitroad          744K   461G   192K  /onitroad
onitroad/lxdvms   192K   461G   192K  /onitroad/lxdvms

设置存储和网络选项:

$ sudo lxd init

输出示例:

Name of the storage backend to use (dir or zfs) [default=zfs]: 
Create a new ZFS pool (yes/no) [default=yes]? no
Name of the existing ZFS pool or dataset: onitroad/lxdvms
Would you like LXD to be available over the network (yes/no) [default=no]? 
Do you want to configure the LXD bridge (yes/no) [default=yes]?

LXC命令

lxc命令用于与LXD服务器通信。lxd软件包创建一个新的“ lxd”组,其中包含允许通过本地unix套接字与lxd对话的所有用户。换句话说,您的用户名必须是lxd组的一部分。

$ id username
$ id jack
$ grep lxd /etc/group

输出示例:

lxd:x:110:jack

如果jack(或任何其他用户)用户不属于lxd组,则当您尝试使用lxc命令时,将收到以下错误消息:

Permission denied, are you in the lxd group?

请注意,组成员资格仅适用于登录或ssh会话,然后您需要关闭并重新打开用户/ssh会话,或使用以下命令来避免上述错误:

$ newgrp lxd

验证lxc客户端正在与LXD守护程序进行会话:

$ lxc list

输出示例:

+------+-------+------+------+------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+-------+------+------+------+-----------+

可以在容器中运行OpenSSH服务器吗?

可以。可以像服务器一样安装和使用openssh-server。

$ lxc exec centos-db -- yum install openssh-server
$ lxc exec cenots-db -- systemctl start sshd

通过ssh登录容器
$ ssh user@centos-db
或者
$ ssh user@容器centos-db的ip地址

如何启动LCX容器?

$ lxc start containerName
$ lxc start foo
$ lsc start centos-db opensuse # 同时启动两个

如何在容器中执行/运行指定的命令?

要在容器中运行或执行命令,请使用exec命令:

lxc exec containerName -- command
lxc exec containerName -- /path/to/script
lxc exec containerName --env EDITOR=/usr/bin/vim -- command

### 在容器中执行命令
$ lxc exec cenots-db -- date
$ lxc exec opensuse -- ifconfig
$ lxc exec ubuntu-nginx -- ip r
$ lxc exec fedora24-c1 -- dnf update
$ lxc exec file-server -- cat /etc/debian_version

如何在容器中访问bash shell?

要登录容器file-server并获取shell的访问权限,执行:

$ lxc exec file-server bash

现在您可以运行命令或安装软件包

# cat /etc/*issue*
# apt-get update
# apt-get upgrade

要从容器中退出,只需执行exit

# exit

如何查看可以使用的各种Linux发行版镜像?

如何查看有哪些Linux镜像可以使用?

$ lxc image list images:

大多数镜像都有几种别名。
查看别名列表:

$ lxc image alias list images:
$ lxc image alias list images: | grep -i centos
$ lxc image alias list images: | grep -i arch
$ lxc image alias list images: | grep -i debian

如何查看LXD服务器和容器信息?

如何使用lxc查看LXD容器的内存,cpu,网络使用情况信息:

$ lxc info
$ lxc info containerName
$ lxc info cenots-db

如何创建和使用第一个容器

要使用映像创建和启动容器,请使用启动命令:

lxc launch images:{distro}/{version}/{arch} {container-name-here}

让我们看一些示例,如何从各种Linux发行镜像创建和启动容器。

Alpine Linux 3.7 虚拟机

$ lxc launch images:alpine/3.7/amd64 alpine-www

输出示例

Creating alpine-www
Retrieving image: 100%
Starting alpine-www

CentOS Linux 7虚拟机

$ lxc launch images:centos/7/amd64 cenots-db

Ubuntu Linux 16.4 xenial LTS 虚拟机

$ lxc launch images:ubuntu/xenial/amd64 ubuntu-nginx

Debian Linux 9.x 虚拟机

$ lxc launch images:debian/stretch/amd64 file-server

Arch Linux虚拟机

$ lxc launch images:archlinux/amd64 arch-c1

Gentoo Linux虚拟机

$ lxc launch images:gentoo/amd64 gentoo-c1

Fedora Linux 26和27 VM

$ lxc launch images:fedora/26/amd64 fedora26-c1

或者

$ lxc launch images:fedora/27/amd64 fedora27-c1

OpenSUSE Linux 42.3虚拟机

$ lxc launch images:opensuse/42.3/amd64 opensuse

Oracle Linux 7.x虚拟机

$ lxc launch images:oracle/7/amd64 oracle-proxy-c1
日期:2020-03-23 08:03:57 来源:oir作者:oir