A .NET library for interacting with Docker and Docker Compose via a fluent API, supporting local and remote containers in tests and applications.
FluentDocker is a .NET library that provides a fluent, type-safe API for interacting with Docker and Docker Compose. It allows developers to programmatically manage containers—such as starting, stopping, and configuring them—directly within .NET applications and unit tests. The library solves the problem of integrating Docker operations into .NET codebases without relying on shell commands or external scripts.
.NET developers who need to integrate Docker containers into their applications, especially for integration testing, local development environments, or CI/CD pipelines. It's also useful for DevOps engineers building .NET-based tooling around container management.
Developers choose FluentDocker for its intuitive fluent API that reduces boilerplate, its first-class support for both Docker and Podman, and its seamless integration with .NET test frameworks. Unlike raw command-line calls, it provides type safety, better error handling, and built-in utilities like port waiting and file operations.
Use docker, docker-compose local and remote in tests and your .NET core/full framework apps via a FluentAPI
Provides chainable methods for building and managing containers, as shown in examples like configuring a PostgreSQL container with environment variables and port waiting in a single fluent chain.
Supports both Docker and Podman with auto-detection, allowing flexibility in container engine choice, detailed in the Container Engine Configuration section with explicit engine setting options.
Includes base classes for MSTest and xUnit, simplifying container-based testing in .NET, evidenced by separate NuGet packages for test framework support.
Features like port waiting, file copying, and networking support reduce manual setup, demonstrated in code snippets for waiting on ports and mounting volumes.
The README mentions breaking changes, such as autodetecting compose version, which can disrupt existing implementations without prior warning, requiring code updates.
Connecting to remote Docker daemons requires SSH configuration and certificate management, adding setup overhead as described in the remote daemon section with manual steps for SSH tunnels.
Limited to .NET ecosystems, making it unsuitable for projects using other languages or requiring cross-platform tooling beyond .NET, as it relies on .NET frameworks and standards.
A convention-based object-object mapper in .NET.
Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities
:angel: The ultimate angle brackets parser library parsing HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specifications.
A fast, powerful, CommonMark compliant, extensible Markdown processor for .NET
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.