use wslcsdk::{ContainerBuilder, SessionBuilder, WslcContainerState, WslcPortProtocol, WslcSignal};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let session = SessionBuilder::new_default("example-session")?
.cpu_count(4)
.memory_mb(4096)
.build()?;
println!("会话已创建: {}", session.name());
let container = ContainerBuilder::new("docker.io/library/alpine:latest")
.name("example-container")
.auto_remove(true)
.add_port_mapping(8080, 80, WslcPortProtocol::Tcp)
.add_volume(r"C:\example-data", "/data", false)
.build(&session)?;
println!("容器已创建,ID: {}", container.id()?);
container.start(false)?;
let state = container.state()?;
println!(
"容器是否处于运行状态: {}",
state == WslcContainerState::RUNNING
);
let inspect = container.inspect()?;
println!(
"容器检查快照字段数: {}",
inspect.as_object().map_or(0, |o| o.len())
);
container.stop(WslcSignal::Sigterm, 10)?;
session.terminate()?;
println!("全部资源已释放");
Ok(())
}