fleetflow_container/
docker.rs1use crate::error::{ContainerError, Result};
2use bollard::Docker;
3
4pub async fn init_docker() -> Result<Docker> {
6 let docker = Docker::connect_with_local_defaults()
7 .map_err(|e| ContainerError::DockerConnectionFailed(e.to_string()))?;
8
9 docker
11 .ping()
12 .await
13 .map_err(|e| ContainerError::DockerConnectionFailed(e.to_string()))?;
14
15 Ok(docker)
16}
17
18pub async fn get_docker_version() -> Result<String> {
20 let docker = init_docker().await?;
21 let version = docker
22 .version()
23 .await
24 .map_err(|e| ContainerError::DockerApiError(e.to_string()))?;
25 Ok(version.version.unwrap_or_else(|| "unknown".to_string()))
26}