---
date: 2015-07-07T13:00:00+01:00
description: This is what i do to install and configure lxd
title: LXD getting started
author: pcdummy
tags:
- HOWTO
- Ubuntu
- BTRFS
- LXC
- LXD
---
This is what i do to install and configure lxd.<!-- more -->
#### Install and configure it on the container host
Install **lxd** :
sudo apt-add-repository -y ppa:ubuntu-lxc/stable
sudo apt-get update
sudo apt-get install lxd lxd-client
Give root one subuid and subgid:
sudo usermod --add-subuids 100000-165536 root
sudo usermod --add-subgids 100000-165536 root
OR give root 99 subuid's/subgid's:
for i in {1..99}; do sudo usermod --add-subuids ${i}00000-${i}65536 root; sudo usermod --add-subgids ${i}00000-${i}65536 root; done # This takes a while
Restart **lxd** :
sudo service lxd restart
Set the remote authentication password:
lxc config set core.trust_password < your-password-here >
Change the default profile network interface:
lxc profile edit default # Change lxcbr0 to your value.
Create an image:
lxd-images import lxc ubuntu trusty amd64 --alias trusty64 --alias ubuntu/trusty --alias ubuntu/trusty/amd64
Create the container "trusty64" from the image "ubuntu/trusty/amd64" you just made:
lxc launch ubuntu/trusty/amd64 trusty64
Show the log if the above failed:
lxc info trusty64 --show-log
Attach a shell on it:
lxc exec trusty64 /bin/bash
Delete the container you made:
lxc delete trusty64
#### On your own box/client
Install lxd-client
sudo apt-add-repository -y ppa:ubuntu-lxc/stable
sudo apt-get update
sudo apt-get install lxd-client
Add a remote for the server you just configured:
lxc remote add < your-server-here > https://< your-server-fqdn-here > :8443 --accept-certificate # enter the password you've set above here.
See if the remote works:
lxc list < your-server-here > :
#### Create a image from a container (publish it)
You need to delete the image first if you already have one with one of that aliases:
lxc delete < server > :ubuntu/trusty/amd64
Now publish your container (make it available as image):
lxc publish < server > :< container > < server > : --alias ubuntu/trusty --alias ubuntu/trusty/amd64
Delete the image container if needed:
lxc delete < server > :trusty64
Launch a new container from the image you created:
lxc launch < server > :ubuntu/trusty < server > :< your-new-container-name >
You can also do:
lxc init < server > :ubuntu/trusty < server > :< your-new-container-name >
lxc start < server > :< your-new-container-name >
Start a shell in the new container:
lxc exec srv01:< new-container-name > /bin/bash
Usefull Links:
- [LXD README.md ](https://github.com/lxc/lxd#machine-setup )
- [LXD CMD specs ](https://github.com/lxc/lxd/blob/master/specs/command-line-user-experience.md )
- [LXD config specs (all configuration variables) ](https://github.com/lxc/lxd/blob/master/specs/configuration.md )