Skip to content Skip to main navigation Skip to footer

Ubuntu 16.04系统下安装LXD容器的详细教程

本文将会讲述如何在ubuntu 16.04 LTS linux系统下安装新一代的容器技术LXD,并在该容器下运行当前主流的Linux操作系统,比如:Debian/Centos/Ubuntu等。

安装LXD 软件包

输入下面的apt-get命令安装LXD:

$ sudo apt-get install lxd

命令输出如下:

root@ubuntutest:~# apt-get install lxd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
  lxd-client
建议安装:
  criu lxd-tools
下列软件包将被升级:
  lxd lxd-client
升级了 2 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 126 个软件包未被升级。
需要下载 5,289 kB 的归档。
解压缩后会消耗 129 kB 的额外空间。
您希望继续执行吗? [Y/n] Y
获取:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 lxd amd64 2.0.10-0ubuntu1~16.04.1 [3,432 kB]
获取:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 lxd-client amd64 2.0.10-0ubuntu1~16.04.1 [1,856 kB]
已下载 5,289 kB,耗时 9秒 (583 kB/s)
正在预设定软件包 ...
(正在读取数据库 ... 系统当前共安装有 59082 个文件和目录。)
正准备解包 .../lxd_2.0.10-0ubuntu1~16.04.1_amd64.deb  ...
Warning: Stopping lxd.service, but it can still be activated by:
  lxd.socket
正在将 lxd (2.0.10-0ubuntu1~16.04.1) 解包到 (2.0.9-0ubuntu1~16.04.1) 上 ...
Warning: Stopping lxd.service, but it can still be activated by:
  lxd.socket
正准备解包 .../lxd-client_2.0.10-0ubuntu1~16.04.1_amd64.deb  ...
正在将 lxd-client (2.0.10-0ubuntu1~16.04.1) 解包到 (2.0.9-0ubuntu1~16.04.1) 上 ...
正在处理用于 systemd (229-4ubuntu16) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19) 的触发器 ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在设置 lxd-client (2.0.10-0ubuntu1~16.04.1) ...
正在设置 lxd (2.0.10-0ubuntu1~16.04.1) ...

LXD容器网络和存储配置

输入下面的命令来配置LXD容器的网络和存储:

$ sudo lxd init

命令输出如下:

root@ubuntutest:~# lxd init
Name of the storage backend to use (dir or zfs) [default=dir]:
Would you like LXD to be available over the network (yes/no) [default=no]? yes
Address to bind LXD to (not including port) [default=all]:
Port to bind LXD to [default=8443]:
Trust password for new clients:
Again:
Do you want to configure the LXD bridge (yes/no) [default=yes]?
Warning: Stopping lxd.service, but it can still be activated by:
  lxd.socket
LXD has been successfully configured.

在上面命令的运行过程中会有一些交互式的操作,如下面的截图:
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10
ubuntu16.04 LXD容器网络和存储配10

LXC 命令

LXC是当前的ubuntu linux 系统 和LXD 服务器通信的主要命令。LXD在配置的时候会自动创建一个名为”lxd”的用户组,当前用户也会被加到该组里。

$ sudo cat /etc/group|grep lxd

命令输出:

root@ubuntutest:~# cat /etc/group| grep lxd
 lxd:x:110:ubuntutest

 
查看当前可用的Linux镜像文件

 $ sudo lxc image list images:

这个命令会去linuxcontainers.org 官方查看当前可用的不同Linux发行版本的镜像文件。
LXd 支持的镜像模板查看官方链接:https://uk.images.linuxcontainers.org/
 
在LXD容器上创建CentOS 7 虚机
输入下面的命令:

$ sudo lxc launch images:centos/7/amd64 centos-vm1

 
在LXD容器上创建ubuntu 16.04 LTS 版本虚机
输入下面的命令:

 $ sudo lxc launch images:ubuntu/xenial/amd64 ubuntu-vm1

 
在LXD容器上创建DebianLinux 7.x Wheezy虚机
输入下面的命令:

 $ sudo lxc launch images:debian/wheezy/amd64 debian-vm1

 
在LXD容器上创建Fedora 25版本的虚机
输入下面的命令:

$ sudo lxc launch images:fedora/25/amd64  fedora-vm1

 
在LXD容器上创建Fedora 26版本的虚机
输入下面的命令:

 $ sudo lxc launch images:fedora/26/amd64  fedora-vm2

 
在LXD容器上创建oracle7版本的虚机
输入下面的命令:

 $ sudo lxc launch images:oracle/7/amd64  oracle-vm1

 
在LXD容器上创建OpenSuSe Linux 42.3版本的虚机
输入下面的命令:

 $ sudo lxc launch images:opensuse/42.3/amd64  opensuse-vm1

 
列出当前LXD容器创建的虚机
输入下面的命令:

 $ sudo lxc list

命令输出如下:

 root@ubuntutest:~# lxc list
 +------+-------+------+------+------+-----------+
 | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
 +------+-------+------+------+------+-----------+

 
启动容器里某个虚机
执行下面命令:

 $ sudo lxc start 虚机名
 $ sudo lxc start centos-vm1

 
关闭容器里某个虚机
执行下面命令:

$ sudo lxc stop 虚机名
 $ sudo lxc stop centos-vm1

 
重启LXD容器里虚机
命令如下:

 $ sudo lxc restart 虚机名
 $ sudo lxc restart centos-vm1

 
删除LXD容器下的虚机
执行下面的命令:

$ sudo lxc delete 虚机名
 $ sudo lxc delete centos-vm1

 
查看LXD容器下虚机的相关信息
如果想查看某个虚机的网络,内存,CPU等使用信息,可以执行下面的命令:

 $ sudo lxc info 虚机名
 $ sudo lxc info centos-vm1