Your submission was sent successfully! Close

You have successfully unsubscribed! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates about Ubuntu and upcoming events where you can meet our team.Close

LXD 2.17 has been released

This article is more than 6 years old.

The changes in this release include

New features:

  • Add support for specifying the ceph user (using the “” property)
  • Implement “instance types” as an easy way to specify limits (e.g. “lxc launch ubuntu:16.04 -t t2.micro”)
  • Add a new “lxc query” command as a low level query tool for the LXD API (similar to curl but with LXD knowledge)
  • Filesystem ACLs are now rewritten when the container changes uid/gid map
  • LXD now supports using binary deltas when refreshing daily images
  • “lxc image info” now shows whether an image was automatically cached by LXD


  • client: Cleanup code duplication in image download function
  • client: Remove deprecated client code
  • client: Simplify ConnectPublicLXD logic
  • doc: Add storage documentation for volatile.pool.pristine
  • doc: Add the volatile.initial_source key
  • doc: Fix bad JSON in (Issue #3654)
  • doc: Properly escape path params
  • extra/lxc-to-lxd: Ignore capabilities that are dropped by default
  • extra/lxc-to-lxd: Ignore sysfs/proc mounts
  • extra/lxc-to-lxd: Properly handle lxc.seccomp
  • i18n: Update translations from weblate
  • lxc: Fix race in progress reporter
  • lxc: Re-introduce remote protocol migration
  • lxc/config: Expose extra certificate functions (Issue #3606)
  • lxc/image: Fix copy of image aliases
  • lxc/image: Wait for the refresh to complete
  • lxc/remote: Don’t require a crt for public remotes (Issue #3627)
  • lxd: Move lxd/util.go into its own lxd/util/ sub-package
  • lxd/containers: Allow passing disk devices with the LXD snap (Issue #3660)
  • lxd/containers: Another LXC 2.1 key rename, lxc.idmap
  • lxd/containers: Fix a typo: now -> know
  • lxd/containers: Fix gpu attach when mixing GPU vendors (Issue #3642)
  • lxd/containers: Fix sorting order of devices (Issue #2895)
  • lxd/containers: Fix support for isolcpu in CPU scheduler (Issue #3624)
  • lxd/containers: Make stateful snapshot restores work again
  • lxd/daemon: Add initial lxd/sys sub-package and OperatingSystem structure
  • lxd/daemon: d.os.Init must be run after all paths are created
  • lxd/daemon: Extract Daemon.ExpireLogs into a standalone function
  • lxd/daemon: Extract Daemon.GetListeners into a standalone function
  • lxd/daemon: Extract Daemon.httpClient into a standalone HTTPClient function
  • lxd/daemon: Extract Daemon.ListenAddresses into a standalone function
  • lxd/daemon: Extract Daemon.PasswordCheck into a standalone function
  • lxd/daemon: Extract Daemon.SetupStorageDriver into a standalone function
  • lxd/daemon: Log a warning for unknown config keys instead of crashing
  • lxd/daemon: Move Daemon.BackingFs to the OS struct
  • lxd/daemon: Move Daemon.IdmapSet to OS.IdmapSet
  • lxd/daemon: Move Daemon.isRecursionRequest to the lxd/util sub-package
  • lxd/daemon: Move Daemon.lxcpath to OS.LxcPath
  • lxd/daemon: Move Daemon.MockMode to OS.MockMode
  • lxd/daemon: Move Deamon.CheckTrustState and Deamon.isTrustedClient to lxd/util
  • lxd/daemon: Move filesystemDetect function into lxd/util subpackage
  • lxd/daemon: Replace Daemon with State in all model entities
  • lxd/daemon: Use select and save a few goroutines
  • lxd/daemon: Use sql.DB or sys.OS instead of Daemon where possible
  • lxd/db: Drop dependencies on Daemon in db.go
  • lxd/db: Move db*.go files into their own db/ sub-package
  • lxd/images: Carry old “cached” value on refresh (Issue #3698)
  • lxd/import: Don’t use un-initialized structs
  • lxd/networks: Allow starting LXD without dnsmasq (Issue #3678)
  • lxd/networks: Fix networkIptablesClear with missing ip{6}tables (Issue #3688)
  • lxd/networks: Make “dev” work as a network name
  • lxd/networks: Set dnsmasq.raw to be 0644 (Issue #3652)
  • lxd/networks: Stop networks on clean shutdown
  • lxd/patches: Fix canmount=noauto patch (Issue #3594)
  • lxd/patches: Unset “size” for ZFS containers + images (Issue #3679)
  • lxd/storage: Count custom volumes in pool UsedBy
  • lxd/storage: Enable “volume.size” for {btrfs,zfs}
  • lxd/storage: Fix “size” property
  • lxd/storage: Fix wrong driver name for log output
  • lxd/storage: Non-functional changes
  • lxd/storage/ceph: Fix double –cluster
  • lxd/storage/ceph: Unmap until EINVAL
  • lxd/storage/ceph: Use “/dev/rbd” via sysfs
  • lxd/storage/ceph: Use minimal image feature set for clones
  • lxd/storage/dir: Check if directory is empty (Issue #3680)
  • lxd/storage/zfs: Always require existing datasets to be empty (Issue #3657)
  • lxd/storage/zfs: Refactoring
  • shared: Add wrapper to translate host paths
  • shared: Move GetRemoteCertificate from lxc/remote (Issue #3606)
  • tests: function to include storage backends helpers
  • tests: Refactor cleanup functions
  • tests: Split out lxc and lxd related helper functions
  • tests: Split out network-related helper functions
  • tests: Split out storage-related helper functions
  • tests: Split out test setup related helper functions
  • tests: Use $storage_backends variable

Try it for yourself

This new LXD release is already available for you to try on our demo service.


The release tarballs can be found on our download page.

This article was originally featured at

Ubuntu cloud

Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.

Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

By submitting this form, I confirm that I have read and agree to Canonical's Privacy Policy.

Related posts

Implementing an Android™ based cloud game streaming service with Anbox Cloud

Since the outset, Anbox Cloud was developed with a variety of use cases for running Android at scale. Cloud gaming, more specifically for casual games as...

Cloud-native infrastructure – When the future meets the present

We’ve all heard about cloud-native applications in recent years, but what about cloud-native infrastructure? Is there any reason why the infrastructure...

How to use Ubuntu in GKE on nodes and in containers

Google Kubernetes Engine (GKE) traces its roots back to Google’s development of Borg in 2004, a Google internal system managing clusters and applications. In...