File: networks.rs

package info (click to toggle)
rust-dockworker 0.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 764 kB
  • sloc: makefile: 2
file content (40 lines) | stat: -rw-r--r-- 1,156 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
extern crate dockworker;

use dockworker::{network::*, Docker};
use std::net::Ipv4Addr;

#[tokio::main]
async fn main() {
    let docker = Docker::connect_with_defaults().unwrap();
    for network in docker
        .list_networks(ListNetworkFilters::default())
        .await
        .unwrap()
    {
        println!(
            "{:20.12}{:25}{:10}{:8}",
            network.Id, network.Name, network.Driver, network.Scope
        );
    }
    let create = {
        let mut opt = NetworkCreateOptions::new("example_network");
        opt.enable_icc()
            .enable_ip_masquerade()
            .host_binding_ipv4(Ipv4Addr::new(0, 0, 0, 0))
            .bridge_name("dockworker_ex_0")
            .driver_mtu(1500);
        opt.internal = true;
        opt
    };

    println!(
        "create network: {}",
        serde_json::to_string_pretty(&create).unwrap()
    );
    let res = docker.create_network(&create).await.unwrap();
    println!("res: {res:?}");
    let mut filter = ListNetworkFilters::default();
    filter.id(res.Id.as_str().into());
    println!("remove network: {}", res.Id);
    docker.remove_network(&res.Id).await.unwrap();
}