Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

LXD (сокращение от Linux Container Daemon), созданный канадцем Стефаном Грабе из компании Canonical. Он также является одним из авторов другого популярного контейнерного решения — LXC. Собственно, LXD представляет собой надстройку над LXC, которая упрощает работу с контейнерами и добавляет широкий спектр новых возможностей.

Как и Docker, LXD функционирует на базе LXC. При этом LXD предназначен — для запуска полноценных операционных систем, в отличие от Docker — предназначеного для запуска в контейнерах приложений.

С помощью LXD можно создавать легковесные виртуальные машины. В публикациях Canonical отмечается, что LXD-контейнеры могут работать до 10 раз быстрее, чем традиционные виртуальные машины на базе KVM.

Сохраните код представленного ниже скрипта в файл lxd.sh в кодировке: UTF-8 с переносом строк (EOL Conversion) типа: Unix (LF).

#!/bin/bash

# Set defaults.
def_network="lxdbr0" 
def_subnetwork="10.105.28.1/24" 
vm_network_adapter="eth0"
vm_ip="10.105.28.2"     

# Vm distribution.
vm_distribution="ubuntu:16.04/amd64"
# VM name.
vm_name="www-server"

# Bin path.
path_apt="/usr/bin/apt-get"
path_lxd="/usr/bin/lxd"
path_lxc="/usr/bin/lxc"
 
# Update base host.
$path_apt update
$path_apt -y upgrade
 
# Install LXD.
$path_apt -y install lxd zfsutils-linux
$path_lxd init --auto
 
# Create new networking bridge.
$path_lxc network delete ${def_network}
$path_lxc network create ${def_network} ipv6.address=none ipv4.address=${def_subnetwork} ipv4.nat=true

# Create VM.
$path_lxc delete ${vm_name}
$path_lxc init ${vm_distribution} ${vm_name}

# Attaching the network to the VM. 
$path_lxc network attach ${def_network} ${vm_name} ${vm_network_adapter}
$path_lxc config device set ${vm_name} ${vm_network_adapter} ipv4.address ${vm_ip}
 
# Start VM.
$path_lxc start ${vm_name} 

# Auto start LXD containers at boot time in Ubuntu.
$path_lxc config set ${vm_name} boot.autostart true
 
# Install updates in VM.
$path_lxc exec ${vm_name} -- /usr/bin/apt-get update
$path_lxc exec ${vm_name} -- /usr/bin/apt-get -y upgrade
 

Перейдите в консоли в папку с сохранёным скриптом, после чего сделайте его исполняемым и запустите автаматическую установки LXD набрав в консоли:

chmod +x ./lxd.sh
sudo ./lxd.sh 

По завершению работы срипта — виртуальная машина на базе Ubuntu 16.04 будет доступна по Ip: 10.105.28.2.