You can download a PDF of my slides here, or flip through them embedded below.
I'd really encourage you to try the demo instructions of LXD toward the end!
:-Dustin
$ locate zfs.ko /lib/modules/4.4.0-4-generic/kernel/zfs/zfs/zfs.ko
$ lsmod | grep zfs zfs 2801664 11 zunicode 331776 1 zfs zcommon 57344 1 zfs znvpair 90112 2 zfs,zcommon spl 102400 3 zfs,zcommon,znvpair zavl 16384 1 zfs
$ head -n1 /etc/issue Ubuntu Xenial Xerus (development branch) \n \l
$ sudo apt install lxd zfsutils-linux
$ sudo lxd init Name of the storage backend to use (dir or zfs): zfs Create a new ZFS pool (yes/no)? yes Name of the new ZFS pool: lxd Would you like to use an existing block device (yes/no)? no Size in GB of the new loop device (1GB minimum): 2 Would you like LXD to be available over the network (yes/no)? no LXD has been successfully configured.
$ sudo zpool list NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT lxd 1.98G 450K 1.98G - 0% 0% 1.00x ONLINE -
$ sudo zpool status pool: lxd state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM lxd ONLINE 0 0 0 /var/lib/lxd/zfs.img ONLINE 0 0 0 errors: No known data errors
$ lxc config get storage.zfs_pool_name storage.zfs_pool_name: lxd
$ newgrp lxd $ lxd-images import ubuntu --alias ubuntu Downloading the GPG key for http://cloud-images.ubuntu.com Progress: 48 % Validating the GPG signature of /tmp/tmpa71cw5wl/download.json.asc Downloading the image. Image manifest: http://cloud-images.ubuntu.com/server/releases/trusty/release-20160201/ubuntu-14.04-server-cloudimg-amd64.manifest Image imported as: 54c8caac1f61901ed86c68f24af5f5d3672bdc62c71d04f06df3a59e95684473 Setup alias: ubuntu
$ for i in $(seq 1 5); do lxc launch ubuntu; done ... $ lxc list +-------------------------+---------+-------------------+------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | EPHEMERAL | SNAPSHOTS | +-------------------------+---------+-------------------+------+-----------+-----------+ | discordant-loria | RUNNING | 10.0.3.130 (eth0) | | NO | 0 | +-------------------------+---------+-------------------+------+-----------+-----------+ | fictive-noble | RUNNING | 10.0.3.91 (eth0) | | NO | 0 | +-------------------------+---------+-------------------+------+-----------+-----------+ | interprotoplasmic-essie | RUNNING | 10.0.3.242 (eth0) | | NO | 0 | +-------------------------+---------+-------------------+------+-----------+-----------+ | nondamaging-cain | RUNNING | 10.0.3.9 (eth0) | | NO | 0 | +-------------------------+---------+-------------------+------+-----------+-----------+ | untreasurable-efrain | RUNNING | 10.0.3.89 (eth0) | | NO | 0 | +-------------------------+---------+-------------------+------+-----------+-----------+
ubuntu@ip-172-30-0-129:~⟫ time sudo apt install docker.io -y ... real 0m15.938s user 0m2.146s sys 0m0.913s
ubuntu@ip-172-30-0-129:~⟫ time sudo docker pull ubuntu latest: Pulling from ubuntu f15ce52fc004: Pull complete c4fae638e7ce: Pull complete a4c5be5b6e59: Pull complete 8693db7e8a00: Pull complete ubuntu:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. Digest: sha256:457b05828bdb5dcc044d93d042863fba3f2158ae249a6db5ae3934307c757c54 Status: Downloaded newer image for ubuntu:latest real 0m9.230s user 0m0.021s sys 0m0.016s
ubuntu@ip-172-30-0-129:/tmp/docker⟫ time sudo docker run alpine /bin/true real 0m0.233s user 0m0.014s sys 0m0.001s
ubuntu@ip-172-30-0-129:/tmp/docker⟫ time sudo docker run ubuntu /bin/true real 0m0.234s user 0m0.012s sys 0m0.002s