pub struct Container { /* private fields */ }
Expand description

An LXD ephemeral container

Implementations

Create a new LXD container

Arguments
  • location - The location of the host
  • name - The name of the container
  • base - The base distribution to use, ubuntu:16.04 for example
Return

The newly created LXD container

Errors

Errors that are encountered while creating container will be returned

Example
use lxd::{Container, Location};

let mut container = Container::new(Location::Local, "test-new", "ubuntu:16.04").unwrap();

Create a new privileged LXD container

Arguments
  • location - The location of the host
  • name - The name of the container
  • base - The base distribution to use, ubuntu:16.04 for example
Return

The newly created LXD container

Errors

Errors that are encountered while creating container will be returned

Example
use lxd::{Container, Location};

let mut container = unsafe { Container::new_privileged(Location::Local, "test-new-privileged", "ubuntu:16.04").unwrap() };

Get full name of container

Create a snapshot of a container

Arguments
  • name - name of the new snapshot
Return

A new snapshot on success

Errors

Errors that are encountered while creating snapshot will be returned

Example
use lxd::{Container, Location, Snapshot};

let container = Container::new(Location::Local, "test-snapshot", "ubuntu:16.04").unwrap();
container.snapshot("test-snapshot").unwrap();

Run a command in an LXD container

Arguments
  • command - An array of command arguments
Return

An empty tuple on success

Errors

Errors that are encountered while executing will be returned

Example
use lxd::{Container, Location};

let mut container = Container::new(Location::Local, "test-exec", "ubuntu:16.04").unwrap();
container.exec(&["echo", "hello"]).unwrap();

Mount a path in an LXD container

Arguments
  • name - The name of the mount
  • source - The source path to mount
  • dest - The destination of the mount
Return

An empty tuple on success

Errors

Errors that are encountered while mounting will be returned

Example
use lxd::{Container, Location};

let mut container = Container::new(Location::Local, "test-mount", "ubuntu:16.04").unwrap();
container.mount("source", ".", "/root/source").unwrap();

Push a file to the LXD container

Arguments
  • source - The source of the file in the host
  • dest - The destination of the file in the container
  • recursive - The source is a directory
Return

An empty tuple on success

Errors

Errors that are encountered while pushing will be returned

Example
extern crate lxd;
extern crate tempdir;

use lxd::{Container, Location};
use tempdir::TempDir;

fn main() {
    let mut container = Container::new(Location::Local, "test-push", "ubuntu:16.04").unwrap();
    let tmp = TempDir::new("").unwrap();
    container.push(tmp.path(), "/root", true).unwrap();
}

Pull a file from the LXD container

Arguments
  • source - The source of the file in the container
  • dest - The destination of the file in the host
  • recursive - The source is a directory
Return

An empty tuple on success

Errors

Errors that are encountered while pulling will be returned

Example
extern crate lxd;
extern crate tempdir;

use lxd::{Container, Location};
use tempdir::TempDir;

fn main() {
    let mut container = Container::new(Location::Local, "test-pull", "ubuntu:16.04").unwrap();
    container.exec(&["mkdir", "artifacts"]).unwrap();
    let tmp = TempDir::new("").unwrap();
    container.pull("/root/artifacts", tmp.path(), true).unwrap();
}

Trait Implementations

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.