How to copy and import images#
To add images to an image store, you can either copy them from another server or import them from files (either local files or files on a web server).
Copy an image from a remote#
To copy an image from one server to another, enter the following command:
incus image copy [<source_remote>:]<image> <target_remote>:
To copy the image to your local image store, specify
local: as the target remote.
incus image copy --help for a list of all available flags.
The most relevant ones are:
Assign an alias to the copy of the image.
Copy the aliases that the source image has.
Keep the copy up-to-date with the original image.
When copying from an alias, copy the image that can be used to create virtual machines.
Import an image from files#
If you have image files that use the required Image format, you can import them into your image store.
There are several ways of obtaining such image files:
Exporting an existing image (see Export an image to a file)
Building your own image using
distrobuilder(see Build an image)
Import from the local file system#
To import a unified image from one file or directory, enter the following command:
incus image import <image_file_or_directory_path> [<target_remote>:]
To import a split image, enter the following command:
incus image import <metadata_tarball_path> <rootfs_tarball_path> [<target_remote>:]
In both cases, you can assign an alias with the
incus image import --help for all available flags.
Import from a file on a remote web server#
You can import image files from a remote web server by URL. This method is an alternative to running a Incus server for the sole purpose of distributing an image to users. It only requires a basic web server with support for custom headers (see Custom HTTP headers).
The image files must be provided as unified images (see Unified tarball).
To import an image file from a remote web server, enter the following command:
incus image import <URL>
You can assign an alias to the local image with the
Custom HTTP headers#
Incus requires the following custom HTTP headers to be set by the web server:
The SHA256 of the image that is being downloaded.
The URL from which to download the image.
Incus sets the following headers when querying the server:
A comma-separated list of architectures that the client supports.
The version of Incus in use.