A fully asynchronous .NET (C#) client library for interacting with the Docker Remote API.
Docker.DotNet is a .NET client library that provides programmatic access to the Docker Remote API from C# applications. It allows developers to manage Docker containers, images, networks, and volumes directly through an asynchronous, object-oriented interface, eliminating the need to shell out to Docker CLI commands.
.NET developers building applications that need to automate Docker operations, DevOps engineers creating container management tools in C#, and teams integrating Docker functionality into .NET-based microservices or deployment pipelines.
Developers choose Docker.DotNet because it provides a fully native .NET experience with async/await support, comprehensive Docker API coverage, and type-safe models that match Docker's API structure, making it more maintainable than raw HTTP calls or CLI wrappers.
:whale: .NET (C#) Client Library for Docker API
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
All operations are async/await compatible, enabling non-blocking I/O for improved performance, as demonstrated in examples like ListContainersAsync and streaming events.
Supports containers, images, volumes, networks, and system operations, providing a complete programmatic interface to Docker daemons without manual HTTP calls.
Includes TLS certificates, basic HTTP auth, and anonymous connections, with separate NuGet packages (e.g., Docker.DotNet.X509) for advanced security setups.
Works with Docker on Windows via named pipes, Linux via Unix sockets, and remote endpoints, ensuring cross-platform compatibility out of the box.
The library's versioning is tied to Docker API versions, and as the README notes, Docker does not guarantee backward compatibility, leading to potential breaking changes.
Authentication methods like TLS require installing separate packages and manual certificate handling (e.g., converting PEM to PFX), adding setup overhead compared to integrated solutions.
Focuses on Docker Engine API without built-in features for higher-level orchestration like Docker Swarm or Kubernetes, requiring additional libraries or custom code.