2 个不稳定版本

0.2.0 2022 年 3 月 10 日
0.1.0 2022 年 2 月 11 日

5#consuming 中排名

每月下载量 24
用于 containerd-runc-shim

Apache-2.0

91KB
2K SLoC

runc CLI 的 Rust 绑定

Crates.io docs.rs Crates.io CI

一个用于在 Rust 应用程序中消费 runc 二进制的库,类似于 Go 的 go-runc。此库基于已归档的 rust-runc

用法

提供同步/异步版本。您可以使用方法链式调用 RuncConfig 构建 runc 客户端。调用 build()build_async() 获取客户端。请注意,异步客户端依赖于 tokio,因此请在 tokio 运行时使用它。

use runc;

#[tokio::main]
async fn main() {
    let config = runc::Config::new()
        .root("./new_root")
        .debug(false)
        .log("/path/to/logfile.json")
        .log_format(runc::LogFormat::Json)
        .rootless(true);

    let client = config.build_async().unwrap();

    let opts = runc::options::CreateOpts::new()
        .pid_file("/path/to/pid/file")
        .no_pivot(true);
    
    client.create("container-id", "path/to/bundle", Some(&opts)).unwrap();
}

限制

  • 支持的命令只有
    • 创建
    • 启动
    • 状态
    • 终止
    • 删除
  • 现在 RuncAsyncClient 支持 Exec。
  • 控制台工具 支持

依赖项

~6–17MB
~238K SLoC