Struct lxd::Container
[−]
[src]
pub struct Container(_);
An LXD container
Methods
impl Container
[src]
fn new(location: Location, name: &str, base: &str) -> Result<Self>
Create a new LXD container
Arguments
location
- The location of the hostname
- The name of the containerbase
- The base distribution to use,ubuntu:16.04
for example
Return
The newly created LXD container
Errors
Errors that are encountered while creating will be returned
Example
use lxd::{Container, Location}; let mut container = Container::new(Location::Local, "test-new", "ubuntu:16.04").unwrap();
fn exec(&mut self, command: &[&str]) -> Result<()>
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();
fn mount<P: AsRef<Path>>(
&mut self,
name: &str,
source: P,
dest: &str
) -> Result<()>
&mut self,
name: &str,
source: P,
dest: &str
) -> Result<()>
Mount a path in an LXD container
Arguments
name
- The name of the mountsource
- The source path to mountdest
- 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();
fn push<P: AsRef<Path>>(
&mut self,
source: P,
dest: &str,
recursive: bool
) -> Result<()>
&mut self,
source: P,
dest: &str,
recursive: bool
) -> Result<()>
Push a file to the LXD container
Arguments
source
- The source of the file in the hostdest
- The destination of the file in the containerrecursive
- The source is a directory
Return
An empty tuple on success
Errors
Errors that are encountered while mounting 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(); }
fn pull<P: AsRef<Path>>(
&mut self,
source: &str,
dest: P,
recursive: bool
) -> Result<()>
&mut self,
source: &str,
dest: P,
recursive: bool
) -> Result<()>
Pull a file from the LXD container
Arguments
source
- The source of the file in the containerdest
- The destination of the file in the hostrecursive
- The source is a directory
Return
An empty tuple on success
Errors
Errors that are encountered while mounting 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(); }