dockerode

A Node.js client for the Docker Engine Remote API, covering containers, images, networks, and volumes with streams intact.

SDK
npm
v5.0.1
4,953 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
70 /100 Good
Development Activity 60
Maintenance 48
Community 72
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
76 /100 Good
Architecture 80
Code Quality 78
Innovation 74
Learning Curve 72

dockerode is a Node.js module that wraps the Docker Engine Remote API in a set of first-class JavaScript entities — containers, images, networks, volumes, execs, services, and more — instead of a pile of loose static functions. It preserves Node streams end-to-end (including optional demultiplexing of combined stdout/stderr), and offers both callback- and promise-based interfaces so it fits either coding style.

Beyond low-level API coverage, dockerode ships convenience helpers like docker.run() (a docker run equivalent with automatic container lifecycle handling) and followProgress() for tracking long-running operations such as image builds and pulls. It supports connecting over a Unix socket, TCP, or TLS-secured remote hosts, making it equally usable for local development tooling and remote Docker/Swarm orchestration from Node.js.

What You Get

  • Entity-based wrappers for containers, images, networks, volumes, execs, services, tasks, nodes, plugins, secrets, and configs instead of raw endpoint calls
  • Unbroken Node.js streams for attach/logs/build output, with an optional demuxStream() helper to split combined stdout/stderr
  • Both callback and Promise-based method signatures across the entire API surface, including support for swapping in an alternate Promise library
  • A docker.run() convenience method that replicates docker run semantics — create, start, and optionally auto-remove a container in one call
  • followProgress() for tracking multi-step async operations like image builds and pulls to completion
  • Connection options for Unix sockets, plain TCP, and TLS-secured remote/Swarm hosts

Common Use Cases

  • Building CI/CD tooling or internal PaaS platforms that programmatically create, start, and tear down containers
  • Writing developer-facing CLIs or dashboards that need live container logs and stats via streams
  • Automating Docker image builds and registry pulls/pushes as part of a Node.js build pipeline
  • Orchestrating multi-container test environments (spin up, exec into, and clean up containers) from a test suite
  • Managing Docker Swarm services, nodes, and secrets from Node.js operational scripts

Under The Hood

Architecture dockerode’s core is lib/docker.js, a Docker constructor that owns a single docker-modem instance (this.modem) responsible for the actual HTTP/socket transport, TLS negotiation, and request serialization; every entity module (container.js, image.js, network.js, volume.js, service.js, task.js, node.js, plugin.js, secret.js, config.js, exec.js) is a thin wrapper that stores an id and delegates all I/O to modem.dial(), so the library’s real behavior — connection handling, chunked/streamed responses, and promise vs. callback branching — lives in the separate docker-modem dependency rather than in dockerode itself. Tech Stack it’s plain CommonJS JavaScript (99.9% of the repo) with a deliberately small dependency set — docker-modem for transport, tar-fs + @balena/dockerignore for build-context tarring, @grpc/grpc-js and protobufjs for the newer buildkit/session gRPC paths (lib/buildkit.js, lib/session.js, lib/proto/), and no TypeScript, transpilation, or bundler step — main in package.json points straight at ./lib/docker.js. Code Quality the test/ directory holds ~3,000 lines across dedicated files per entity (container.js, image.js, networks.js, swarm.js, buildkit_test.js, etc.) run through Mocha/Chai, with fixtures and a spec_helper.js for shared setup, indicating deliberate per-feature coverage; the production code favors small, single-purpose prototype methods with consistent JSDoc blocks over each public method, though it still uses older callback-first patterns (processArgs, manual EventEmitter wiring) rather than modern async/await internally. API Design the object-oriented split (docker.getContainer(id) returns a lightweight handle before any network call, methods like .inspect()/.start()/.remove() act on it) keeps call sites close to the Docker CLI’s own mental model, and the dual callback/Promise support on every method (return a Promise only when no callback is passed) minimizes boilerplate for both legacy callback code and modern async/await consumers, at the cost of needing to remember which calling convention was used for a given snippet found in older documentation or examples.

Used by 19 apps in this directory

TypeScript
99%
Apache 2.0

Mastra Code

AI Code Assistants

29,041

"A coding agent that never compacts" — a terminal-based AI coding agent built on the Mastra framework, with Observational Memory instead of context compaction, multi-model support, and OAuth login for Claude Max or ChatGPT Plus.

View details
90
Repo Health
73
Technical
65
Dependency
Built with
TypeScript 99%
Updated 6 days ago
TypeScript
88%
MIT

Mistle

AI Agents · Developer Tools

95

Self-hostable platform for running autonomous coding agents in isolated, credentialless sandboxes with brokered credentials, reusable snapshots, and event-driven triggers.

View details
50
Repo Health
76
Technical
70
Dependency
Built with
TypeScript 88%
Rust 11%
Updated 4 weeks ago
TypeScript
93%
Apache 2.0

Openship

Devops · Hosting Control Panel

14,912

Openship is an open-source, self-hostable deployment platform that points at a repo and builds, ships, routes, and TLS-terminates the app — driven from a desktop app, web dashboard, or CLI.

View details
84
Repo Health
85
Technical
65
Dependency
Built with
TypeScript 93%
Updated 6 days ago
TypeScript
60%
MIT

optio

AI Agents · AI Code Assistants

1,073

Self-hosted AI agent workflow orchestration that runs on your Kubernetes cluster — from ticket intake to squash-merged PR, entirely within your infrastructure.

View details
82
Repo Health
81
Technical
70
Dependency
Built with
TypeScript 60%
Kotlin 27%
Swift 11%
Updated 1 weeks ago
JavaScript
64%
AGPL 3.0

overleaf

Collaboration · Productivity

18,266

Open-source, real-time collaborative LaTeX editor with sandboxed compilation and full TeXLive support for self-hosted academic and research teams.

View details
84
Repo Health
80
Technical
59
Dependency
Built with
JavaScript 64%
TypeScript 30%
Updated 1 months ago
TypeScript
96%
Apache 2.0

rakazo

AI Agents · AI Assistants

5,488

An open-source platform for persistent AI teammates that own their own conversations, memory, routines, and computers — self-hosted, model-agnostic, and available on web, desktop, and mobile.

View details
82
Repo Health
91
Technical
70
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
TypeScript
92%
Other

Suna

AI Agents

20,306

Turn your company into a git repo — one config, one command center, a workforce of AI agents that runs the real work around the clock.

View details
90
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 92%
Updated 6 days ago
TypeScript
99%
Apache 2.0

Trigger.dev

AI Development · Automation · Developer Tools

16,606

Build and deploy fully-managed AI agents and background jobs in TypeScript — with no timeouts, durable retries, real-time observability, and elastic scaling built in.

View details
90
Repo Health
9
Technical
63
Dependency
Built with
TypeScript 99%
Updated 6 days ago
TypeScript
72%
Apache 2.0

Valmis

AI Agents

108

A security-focused, self-hostable AI agent platform for production work — agents run in isolated containers that access credentials only through a host-side proxy, so the AI itself never sees API keys or plaintext credentials.

View details
51
Repo Health
69
Technical
70
Dependency
Built with
TypeScript 72%
Svelte 27%
Updated 1 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers