+
+ +

More Notes and Tips for Using LXD

+

LXD Server and Clients

+
Your LXD hosts can establish a secure client-server relationship very quickly and easily.
+
# First enable networking on Both the server and client:
+lxc config set core.https_address [::]:8443
+
+# Then on the server, set a password:
+lxc config set core.trust_password <something-secure>
+
+# Then on the client, add the server as a remote,
+# and enter the password you just created for it:
+lxc remote add <server> <ip address>
+
+ +
Now from the perspective of the client machine, the server is just another remote, same as:
+
    +
  • local (the default)
  • +
  • ubuntu (where ubuntu images come from), and
  • +
  • images (where lxc images of other distros come from).
  • +
  • clyde (your host named clyde)
  • +
+
# command to list remotes
+# returns local, images, ubuntu, etc.
+lxc remote list
+
+# command to list containers on a remote
+lxc list <remote>:
+# i.e. for a remote named "black"
+lxc list black:
+
+# command to list images on a remote
+# i.e. for a remote name "images"
+lxc image list images:
+# or for a remote named "ubuntu"
+lxc image list ubuntu:
+# or for a specific image
+lxc image list ubuntu:16.04 # or
+lxc image list ubuntu:fdceb4d263b9
+
+ +
Now you can move containers around between servers and clients.
+
# launch an ubuntu container from the ubuntu remote
+lxc launch ubuntu:16.04 <optional name>
+# or from a remote named "black"
+lxc launch black:069b95ed3a60 <optional name>
+# to list the images that black has available
+lxc image list black:
+
+# copy a container from a server named "black"
+# to your local client
+lxc copy black:jerry <optional name to copy to>
+# or from "local" back to "black"
+lxc copy jerry black:<optional name to copy to>
+# or move
+lxc move black:jerry <optional name to copy to>
+
+# or change the default remote from "local" to "black"
+lxc remote set-default black
+# and then reverse the syntax
+# copy a container from a server named "black"
+# to your local client
+lxc copy jerry local:<optional name to copy to>
+# or from "local" back to "black"
+lxc copy local:jerry <optional name to copy to>
+
+ +
Or remote control another LXD server
+
# bash shell on container named "jim" running on
+# a remote server named "black"
+lxc exec black:jim bash
+
+# copy that
+lxc copy black:jim black:francine
+
+# snapshot
+lxc snapshot black:jim
+
+# delete a snapshot from a remote container
+# first get the containers info to see what
+# snapshots it has
+lxc info black:jim
+# and then delete
+lxc delete black:jim/snap0
+
+# or rollback/restore,
+# slightly different syntax vs "delete"
+lxc restore black:jim snap0
+
+ +
+