dockworker 0.17.0

Docker daemon API client. (a fork of Faraday's boondock)
Documentation
use dockworker::{
    credentials::{Credential, UserPassword},
    Docker,
};

#[tokio::main]
async fn main() {
    use futures::StreamExt;

    let docker = Docker::connect_with_defaults().unwrap();

    let (name, tag) = ("alpine", "latest");
    let mut pull = docker.create_image(name, tag).await.unwrap();
    while let Some(status) = pull.next().await {
        status.unwrap();
    }

    let serveraddress = "localhost:5000";
    docker.set_credential(Credential::with_password(UserPassword::new(
        "someusername".to_owned(),
        "somepassword".to_owned(),
        "someusername@example.com".to_owned(),
        serveraddress.to_owned(),
    )));

    println!("pulled: {name}:{tag}");
    docker
        .push_image(&format!("{serveraddress}/{name}"), tag)
        .await
        .unwrap();
    println!("pushed: {name}:{tag}");
}