Ubuntu 16.04系统下安装LXD容器的详细教程
August 15, 2017
本文将会讲述如何在ubuntu 16.04 LTS linux系统下安装新一代的容器技术LXD,并在该容器下运行当前主流的Linux操作系统,比如:Debian/Centos/Ubuntu等。
Table of Contents
安装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.
在上面命令的运行过程中会有一些交互式的操作,如下面的截图:
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