5 releases
Uses new Rust 2024
new 0.2.3 | Mar 23, 2025 |
---|---|
0.2.2 | Nov 28, 2024 |
0.2.1 | Oct 21, 2024 |
0.2.0 | Sep 10, 2024 |
0.1.0 | Sep 6, 2024 |
#617 in Unix APIs
Used in auksys
17KB
452 lines
docker-ctl
Crate for conveniently starting and stopping docker containers. This crate is a wrapper around the docker command line interface.
This crate is considered to be complete, and is in low maintenance mode. You are welcome to contribute support for more docker command via pull requests.
Installation
Add docker-ctl
to your project with:
cargo add docker-ctl
Example
use docker_ctl::Container;
use std::io::{Read, Write};
// Create a new container, with the `alpine` image in interractive mode.
let mut container = Container::configure("alpine")
.set_interactive(true)
.set_capture_stdio(true)
.create();
/// Start the container
container.start().unwrap();
/// Run the `echo` command in the container
let mut stdin = container.take_stdin().unwrap();
stdin.write_all(b"echo Hello World!").unwrap();
/// Dropping `stdin` will terminate the container
drop(stdin);
/// Read the output
let mut buf = vec![];
container
.take_stdout()
.unwrap()
.read_to_end(&mut buf)
.unwrap();
/// Print `Hellow World!\n` characters.
println!("{:?}", buf);
Dependencies
~1–25MB
~340K SLoC