lxc-clone (1) - Linux Man Pages

lxc-clone: clone a new container from an existing one.


lxc-clone - clone a new container from an existing one.


lxc-clone [-s ] [-K ] [-M ] [-H ] [-B backingstore] [-L fssize] [-p lxcpath] [-P newlxcpath] {-o orig} {-n new} [-- hook arguments] lxc-clone [-s ] [-K ] [-M ] [-H ] [-B backingstore] [-L fssize] [-p lxcpath] [-P newlxcpath] {orig} {new} [-- hook arguments]


lxc-clone Creates a new container as a clone of an existing container. Two types of clones are supported: copy and snapshot. A copy clone copies the root filessytem from the original container to the new. A snapshot filesystem uses the backing store's snapshot functionality to create a very small copy-on-write snapshot of the original container. Snapshot clones require the new container backing store to support snapshotting. Currently this includes only aufs, btrfs, lvm, overlayfs and zfs. LVM devices do not support snapshots of snapshots.

The backing store of the new container will be the same type as the original container, with one exception, overlay containers. aufs and overlayfs snapshots can be created of directory backed containers. This can be requested by using (for overlayfs) the -B overlayfs arguments.

The names of the original and new container can be given (in that order) after all options, or can be specified with the -o and -n options, respectively.


-s, --snapshot
The new container's rootfs will be a snapshot of the original. This option can be specified when the backing store is LVM, btrfs or zfs, and must be specified when you want to snapshot using aufs or overlayfs.
-K, --keepname
Do not change the hostname of the container (in the root filesystem).
-M, --keepmac
Use the same MAC address as the original container, rather than generating a new random one.
-H, --copyhooks
Copy all mount hooks into the new container's directory, and update any lxcpaths and container names as needed.
-L, --fssize fssize
In the case of a block device backed container, a size for the new block device. By default, the new device will be made the same size as the original.
-p, --lxcpath lxcpath
The lxcpath of the original container. By default, the system wide configured lxcpath will be used.
-P, --newpath newlxcpath
The lxcpath for the new container. By default the same lxcpath as the original will be used. Note that with btrfs snapshots, changing lxcpaths may not be possible, as subvolume snapshots must be in the same btrfs filesystem.
-B, --backingstore backingstore
Select a different backing store for the new container. By default the same as the original container's is used. Note that currently changing the backingstore is only supported for aufs and overlayfs snapshots of directory backed containers. Valid backing stores include dir (directory), aufs, btrfs, lvm, zfs, loop and overlayfs.
-o, --orig orig
The name of the original container to clone.
-n, --new new
The name of the new container to create.


If the container being cloned has one or more lxc.hook.clone specified, then the specified hooks will be called for the new container. The first 3 arguments passed to the clone hook will be the container name, a section ('lxc'), and the hook type ('clone'). Extra arguments passed lxc-clone will be passed to the hook program starting at argument 4. The LXC_ROOTFS_MOUNT environment variable gives the path under which the container's root filesystem is mounted. The configuration file pathname is stored in LXC_CONFIG_FILE, the new container name in LXC_NAME, the old container name in LXC_SRC_NAME, and the path or device on which the rootfs is located is in LXC_ROOTFS_PATH.


Serge Hallyn <serge.hallyn [at] ubuntu.com>