Skip to content

DockerClient

The main facade for all Docker operations. All methods return typed results — never raw dockerode objects.

Constructor

import { DockerClient } from 'sidekick-docker-shared';

const client = new DockerClient();
// or with options:
const client = new DockerClient({ socketPath: '/var/run/docker.sock' });
const client = new DockerClient({ host: '192.168.1.100', port: 2375 });

Container Methods

Method Signature Description
ping () => Promise<boolean> Check Docker daemon connectivity
listContainers (all?: boolean) => Promise<ContainerInfo[]> List containers (default: all including stopped)
startContainer (id: string) => Promise<void> Start a container
stopContainer (id: string) => Promise<void> Stop a container
restartContainer (id: string) => Promise<void> Restart a container
removeContainer (id: string, force?: boolean) => Promise<void> Remove a container
inspectContainer (id: string) => Promise<ContainerInspectInfo> Get full container details
streamLogs (id: string, opts?: LogStreamOptions) => AsyncIterable<LogEntry> Stream container logs
streamStats (id: string) => AsyncIterable<ContainerStats> Stream live container stats

Image Methods

Method Signature Description
listImages (all?: boolean) => Promise<ImageInfo[]> List images
removeImage (id: string) => Promise<void> Remove an image
pruneImages () => Promise<{ spaceReclaimed: number }> Remove dangling images

Volume Methods

Method Signature Description
listVolumes () => Promise<VolumeInfo[]> List volumes (includes usage detection)
removeVolume (name: string) => Promise<void> Remove a volume
pruneVolumes () => Promise<{ spaceReclaimed: number }> Remove unused volumes

Network Methods

Method Signature Description
listNetworks () => Promise<NetworkInfo[]> List networks with connected containers
removeNetwork (id: string) => Promise<void> Remove a network
pruneNetworks () => Promise<{ networksDeleted: string[] }> Remove unused networks

Events

Method Signature Description
streamEvents (filters?: Record<string, string[]>) => AsyncIterable<DockerEvent> Stream Docker daemon events

Usage Examples

List all running containers

const client = new DockerClient();
const containers = await client.listContainers();

for (const c of containers) {
  console.log(`${c.name} (${c.state}) — ${c.image}`);
}

Stream logs from a container

for await (const entry of client.streamLogs(containerId, { tail: 50 })) {
  console.log(`[${entry.stream}] ${entry.message}`);
}

Watch Docker events

for await (const event of client.streamEvents()) {
  console.log(`${event.resourceType} ${event.type}: ${event.resourceId}`);
}