namespace RackPeek.Domain.Discovery; /// Reads containers off a Docker Engine API. The IO half of docker discovery. public interface IDockerClient { /// Describes where this client is pointed, for error messages. string Endpoint { get; } /// /// Running containers only. A stopped container has no host port bindings — the /// daemon does not create them until it runs — so it can never be described as a /// Service, which makes listing stopped containers pointless here. /// Task> ListContainersAsync(CancellationToken cancellationToken = default); /// /// The engine's own identity, or null when it cannot be read. Null is an expected /// answer, not an error: the read-only socket proxies the docs recommend usually /// allow /containers but block /info. /// Task GetInfoAsync(CancellationToken cancellationToken = default); }