Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Core
  3. FluentDocker

FluentDocker

Apache-2.0C#2.80.0

A .NET library for interacting with Docker and Docker Compose via a fluent API, supporting local and remote containers in tests and applications.

GitHubGitHub
1.4k stars104 forks0 contributors

What is FluentDocker?

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.

Target Audience

.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.

Value Proposition

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.

Overview

Use docker, docker-compose local and remote in tests and your .NET core/full framework apps via a FluentAPI

Use Cases

Best For

  • Integration testing with ephemeral databases (e.g., PostgreSQL, MySQL) in .NET
  • Spinning up multi-container environments (e.g., WordPress with MySQL) for local development
  • Building .NET tools that automate Docker container lifecycle management
  • Running Docker Compose projects programmatically from .NET applications
  • Creating self-hosted .NET services that rely on containerized dependencies
  • Testing microservices with dependent containers in .NET test suites

Not Ideal For

  • Non-.NET projects or polyglot teams needing container management across multiple programming languages
  • Scenarios where performance is critical and the abstraction layer of a fluent API introduces unacceptable latency
  • Simple ad-hoc Docker tasks better handled by shell scripts or direct CLI commands

Pros & Cons

Pros

Fluent API Design

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.

Multi-Engine Support

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.

Test Integration

Includes base classes for MSTest and xUnit, simplifying container-based testing in .NET, evidenced by separate NuGet packages for test framework support.

Built-in Utilities

Features like port waiting, file copying, and networking support reduce manual setup, demonstrated in code snippets for waiting on ports and mounting volumes.

Cons

Breaking Changes

The README mentions breaking changes, such as autodetecting compose version, which can disrupt existing implementations without prior warning, requiring code updates.

Complex Remote Setup

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.

.NET Lock-in

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.

Frequently Asked Questions

Quick Stats

Stars1,387
Forks104
Contributors0
Open Issues48
Last commit1 month ago
CreatedSince 2016

Tags

#compose#devops#integration-testing#podman#docker-compose#container-management#dotnet#fluent-api#ci-cd#fluent#docker#test#docker-stack#docker-container#self-hosted#windows#builder#net

Built With

.
.net-framework
.
.NET Core
P
Podman
D
Docker
.
.NET

Included in

Core21.2k
Auto-fetched 11 hours ago

Related Projects

AutoMapperAutoMapper

A convention-based object-object mapper in .NET.

Stars10,187
Forks2,415
Last commit12 days ago
HumanizerHumanizer

Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities

Stars9,605
Forks1,047
Last commit14 days ago
AngleSharpAngleSharp

:angel: The ultimate angle brackets parser library parsing HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specifications.

Stars5,493
Forks590
Last commit15 days ago
markdigmarkdig

A fast, powerful, CommonMark compliant, extensible Markdown processor for .NET

Stars5,210
Forks507
Last commit15 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub