File: export.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 (23 lines) | stat: -rw-r--r-- 766 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
use dockworker::{container::ContainerFilters, Docker};

#[tokio::main]
async fn main() {
    let docker = Docker::connect_with_defaults().unwrap();
    let mut file = tokio::fs::File::create("temp.tar").await.unwrap();
    if let Some(container) = docker
        .list_containers(None, None, None, ContainerFilters::default())
        .await
        .unwrap()
        .get(0)
    {
        let res = docker
            .export_container(container.Id.as_str())
            .await
            .unwrap();
        use futures::stream::TryStreamExt;
        let mut res = tokio_util::io::StreamReader::new(
            res.map_err(|err| std::io::Error::new(std::io::ErrorKind::Other, err)),
        );
        tokio::io::copy(&mut res, &mut file).await.unwrap();
    }
}