pub struct DockerClient { /* private fields */ }Implementations§
Source§impl DockerClient
impl DockerClient
Sourcepub fn connect() -> Result<Self>
pub fn connect() -> Result<Self>
Open a Docker connection using the platform’s default socket / pipe. The handle is cheap to clone (refcounted internally).
§Errors
Returns HmError::Docker when bollard cannot resolve a
local Docker endpoint (no socket on DOCKER_HOST, no Windows
pipe, etc.).
Sourcepub async fn ping(&self) -> Result<()>
pub async fn ping(&self) -> Result<()>
Round-trip the daemon to confirm reachability.
§Errors
Returns HmError::Docker if the ping request fails (daemon
stopped, socket revoked, version negotiation failure).
Sourcepub async fn image_exists(&self, tag: &str) -> Result<bool>
pub async fn image_exists(&self, tag: &str) -> Result<bool>
True if tag resolves to a locally-cached image.
§Errors
Returns HmError::Docker if the list_images API call
fails (daemon unreachable, malformed filter).
Sourcepub async fn list_images_by_reference(
&self,
reference: &str,
) -> Result<Vec<String>>
pub async fn list_images_by_reference( &self, reference: &str, ) -> Result<Vec<String>>
List all repo_tags from images that have at least one tag
matching reference (e.g. "harmont-local/build" matches
harmont-local/build:abc123).
§Errors
Returns HmError::Docker if the list_images API call fails.
Sourcepub async fn pull_image(&self, tag: &str) -> Result<()>
pub async fn pull_image(&self, tag: &str) -> Result<()>
Pull tag from its registry, surfacing the daemon’s progress
stream as Docker errors.
§Errors
Returns HmError::Docker if any chunk of the pull stream
reports an error (registry not reachable, image not found,
auth required).
Sourcepub async fn start_long_lived(
&self,
image: &str,
env: &[String],
workdir: &str,
name: &str,
) -> Result<String>
pub async fn start_long_lived( &self, image: &str, env: &[String], workdir: &str, name: &str, ) -> Result<String>
Start a long-lived container that runs sh -c 'sleep infinity' so
later execs land in a stable shell. Returns the container ID.
§Errors
Returns HmError::Docker if the container cannot be created
(image not pulled, name conflict, OCI runtime failure) or if
start_container rejects the create.
Sourcepub async fn start_long_lived_with_mounts(
&self,
image: &str,
env: &[String],
workdir: &str,
name: &str,
binds: &[String],
) -> Result<String>
pub async fn start_long_lived_with_mounts( &self, image: &str, env: &[String], workdir: &str, name: &str, binds: &[String], ) -> Result<String>
Like Self::start_long_lived but with bind mounts via HostConfig.
Each entry in binds is a Docker bind-mount string of the form
"/host/path:/container/path" (with an optional :ro suffix).
§Errors
Returns HmError::Docker if the container cannot be created
(image not pulled, name conflict, OCI runtime failure) or if
start_container rejects the create.
Sourcepub async fn exec_streaming(
&self,
container_id: &str,
cmd: &[String],
env: &[String],
workdir: &str,
out: &mut (impl AsyncWrite + Send + Unpin),
) -> Result<i64>
pub async fn exec_streaming( &self, container_id: &str, cmd: &[String], env: &[String], workdir: &str, out: &mut (impl AsyncWrite + Send + Unpin), ) -> Result<i64>
Exec a command inside a running container and stream stdout+stderr
to out. Returns the command’s exit code.
§Errors
Returns HmError::Docker if create_exec / start_exec /
inspect_exec fail, or surfaces an anyhow error if writing a
log frame to out fails.
Sourcepub async fn exec_streaming_stdin(
&self,
container_id: &str,
cmd: &[String],
env: &[String],
workdir: &str,
stdin_bytes: &[u8],
out: &mut (impl AsyncWrite + Send + Unpin),
) -> Result<i64>
pub async fn exec_streaming_stdin( &self, container_id: &str, cmd: &[String], env: &[String], workdir: &str, stdin_bytes: &[u8], out: &mut (impl AsyncWrite + Send + Unpin), ) -> Result<i64>
Like Self::exec_streaming, but also pipes stdin_bytes into the
exec’d process’s stdin (closing it after the write so the process
sees EOF). Used to stream a tar archive into tar -xzf - when
hydrating /workspace in a fresh chain-root container.
§Errors
Returns HmError::Docker if any of the exec lifecycle calls
fail, or surfaces an anyhow error if writing stdin or output
frames fails.
Sourcepub async fn commit_container(
&self,
container_id: &str,
tag: &str,
) -> Result<String>
pub async fn commit_container( &self, container_id: &str, tag: &str, ) -> Result<String>
Commit a running container to an image tag. Returns the tag, which is a valid image reference once the daemon’s commit succeeds.
We don’t return the daemon’s image ID: bollard 0.18’s Commit
stub deserialises the response as {"id": ...}, but the Docker
daemon returns {"Id": ...} (capital I). The image is committed
correctly either way; the tag is the canonical reference and is
what every caller actually uses.
§Errors
Returns HmError::Docker if commit_container fails (paused
container, daemon I/O failure).
§Panics
Panics if tag.splitn(2, ':') produces neither one nor two parts.
splitn is total for non-empty input, so this branch is only
reachable for the empty string, which the caller never passes.
Sourcepub async fn remove_image(&self, image: &str) -> Result<()>
pub async fn remove_image(&self, image: &str) -> Result<()>
Force-remove an image by tag. Used for end-of-run pruning of ephemeral parent-snapshot tags committed during this process’s run. Best-effort callers should swallow the error themselves; failures here are non-fatal.
§Errors
Returns HmError::Docker if remove_image fails (image
missing, still referenced by a running container, daemon I/O
failure).
Sourcepub async fn tag_image(&self, source: &str, new_tag: &str) -> Result<()>
pub async fn tag_image(&self, source: &str, new_tag: &str) -> Result<()>
Add an additional tag to an existing image.
source is the existing image reference (tag or ID) and
new_tag is the desired repo:tag string. If new_tag
contains no :, the Docker-default tag "latest" is used.
§Errors
Returns HmError::Docker if tag_image fails (source image
not found, daemon I/O failure).
Sourcepub async fn export_image(&self, image: &str, dest: &Path) -> Result<()>
pub async fn export_image(&self, image: &str, dest: &Path) -> Result<()>
Export a Docker image to a tar file on disk.
Streams the image layer data from the daemon and writes it to
dest using a buffered writer.
§Errors
Returns HmError::Docker if the daemon’s export stream fails,
or an I/O error if writing to dest fails.
Sourcepub async fn import_image(&self, src: &Path) -> Result<()>
pub async fn import_image(&self, src: &Path) -> Result<()>
Import a Docker image from a tar file on disk.
Reads the full tar file into memory and loads it into the daemon via the image import API.
§Errors
Returns HmError::Docker if the daemon rejects the import
stream, or an I/O error if reading src fails.
Sourcepub async fn list_images_by_prefix(&self, prefix: &str) -> Result<Vec<String>>
pub async fn list_images_by_prefix(&self, prefix: &str) -> Result<Vec<String>>
List all image tags whose name starts with prefix.
Uses the Docker reference filter with a glob pattern and then
post-filters the returned repo_tags to those that truly begin
with prefix. The result is sorted lexicographically.
§Errors
Returns HmError::Docker if the list_images API call
fails (daemon unreachable, malformed filter).
pub async fn stop_remove(&self, container_id: &str)
Sourcepub async fn list_containers_by_label(
&self,
k: &str,
v: &str,
) -> Result<Vec<ContainerSummary>>
pub async fn list_containers_by_label( &self, k: &str, v: &str, ) -> Result<Vec<ContainerSummary>>
List container summaries filtered by a single label k=v predicate.
§Errors
Returns HmError::Docker when list_containers fails.
Trait Implementations§
Source§impl Clone for DockerClient
impl Clone for DockerClient
Source§fn clone(&self) -> DockerClient
fn clone(&self) -> DockerClient
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for DockerClient
impl !RefUnwindSafe for DockerClient
impl Send for DockerClient
impl Sync for DockerClient
impl Unpin for DockerClient
impl UnsafeUnpin for DockerClient
impl !UnwindSafe for DockerClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more