DockerClient class

A thin HTTP client that speaks directly to the Docker Engine API.

By default, DockerClient uses a Unix domain socket (path determined by dockerSocket) and targets API version v1.41. When DOCKER_HOST is set to a tcp:// or http:// URL, a plain TCP connection is used instead.

Instances are stateless (no persistent connection pool) — each method call opens and closes its own socket connection.

Example:

final client = DockerClient();
final id = await client.createContainer('nginx:alpine-slim',
  ports: {80: null});
await client.startContainer(id);
final port = await client.port(id, 80);
print('nginx is at http://localhost:$port');
await client.removeContainer(id, force: true);

Constructors

DockerClient()
Creates a DockerClient from the environment.
DockerClient.testOnly()
Creates a DockerClient with no real socket connection.

Properties

connectionMode → ConnectionMode
Determines the active ConnectionMode for this client.
no setter
hashCode → int
The hash code for this object.
no setterinherited
host → String
Returns the host address used to reach containers.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

archive(String id, String path) → Future<Uint8List>
Downloads a file or directory from the container's filesystem as a tar archive.
bridgeIp(String id) → Future<String>
Returns the bridge-network IP address of id.
buildImage(String contextPath, {String? tag, bool noCache = false, String? dockerfile}) → Future<(String, List<Map<String, dynamic>>)>
Builds an image from a local context directory and returns its ID and build logs.
connectNetwork(String networkId, String containerId, {List<String>? aliases}) → Future<void>
Connects containerId to networkId.
containerDetails(String id) → Future<Map<String, dynamic>>
Returns the raw inspect JSON for a single container.
containerInspectInfo(String id) → Future<ContainerInspectInfo>
Returns a strongly-typed inspect model for id.
containers({bool all = false, Map<String, dynamic>? filters}) → Future<List<Map<String, dynamic>>>
Lists containers.
createContainer(String image, {List<String>? command, Map<String, String> env = const {}, String? name, Map<int, int?> ports = const {}, Map<String, ({String bind, String mode})> volumes = const {}, Map<String, String>? tmpfs, Map<String, String>? labels, String? network, List<String>? networkAliases, Map<String, Object?>? kwargs}) → Future<String>
Creates a container and returns its ID.
createNetwork(String name, {Map<String, dynamic>? options}) → Future<String>
Creates a user-defined Docker network.
decodeChunked(Uint8List data) → Uint8List
Exposed for unit testing — delegates to _decodeChunked.
execInContainer(String id, List<String> command) → Future<(int, Uint8List)>
Runs command inside id and returns its exit code and combined output.
gatewayIp(String id) → Future<String>
Returns the gateway IP address of the bridge network for id.
login(DockerAuthInfo auth) → Future<void>
Authenticates with a Docker registry.
logs(String id) → Future<(Uint8List, Uint8List)>
Fetches the container's stdout and stderr log streams.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
parseHttpResponse(Uint8List bytes) → ({Uint8List body, Map<String, String> headers, int statusCode})
Exposed for unit testing — parses a raw HTTP/1.0 response byte buffer.
port(String containerId, int port) → Future<int>
Returns the host port mapped to port on containerId.
pullImage(String image) → Future<void>
Pulls an image from a registry.
putArchive(String id, String path, Uint8List tarData) → Future<void>
Uploads a tar archive to the container's filesystem.
removeContainer(String id, {bool force = false, bool removeVolumes = false}) → Future<void>
Removes a container.
removeImage(String imageId, {bool force = true, bool noPrune = false}) → Future<void>
Removes an image from the local image cache.
removeNetwork(String id) → Future<void>
Removes a Docker network.
startContainer(String id) → Future<void>
Starts a previously created container.
stopContainer(String id, {int timeout = 10}) → Future<void>
Stops a running container gracefully.
stripDockerLogHeaders(Uint8List data) → Uint8List
Exposed for unit testing — delegates to _stripDockerLogHeaders.
toString() → String
A string representation of this object.
inherited
waitContainer(String id) → Future<int>
Blocks until the container stops and returns its exit code.

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

toDockerKey(String dartKey) → String
Converts a Dart-style camelCase or snake_case key to the Docker API's PascalCase convention.