Ductus.FluentDocker
2.85.0
dotnet add package Ductus.FluentDocker --version 2.85.0
NuGet\Install-Package Ductus.FluentDocker -Version 2.85.0
<PackageReference Include="Ductus.FluentDocker" Version="2.85.0" />
<PackageVersion Include="Ductus.FluentDocker" Version="2.85.0" />
<PackageReference Include="Ductus.FluentDocker" />
paket add Ductus.FluentDocker --version 2.85.0
#r "nuget: Ductus.FluentDocker, 2.85.0"
#:package Ductus.FluentDocker@2.85.0
#addin nuget:?package=Ductus.FluentDocker&version=2.85.0
#tool nuget:?package=Ductus.FluentDocker&version=2.85.0
FluentDocker
This library enables docker and docker-compose interactions using a Fluent API. It is supported on Linux, Windows and Mac. It also has support for the legacy docker-machine interactions.
Have a look at the project site for more information.
Sample Fluent API usage
using (
var container =
new Builder().UseContainer()
.UseImage("kiasaki/alpine-postgres")
.ExposePort(5432)
.WithEnvironment("POSTGRES_PASSWORD=mysecretpassword")
.WaitForPort("5432/tcp", 30000 /*30s*/)
.Build()
.Start())
{
var config = container.GetConfiguration(true);
Assert.AreEqual(ServiceRunningState.Running, config.State.ToServiceState());
}
The following snippet fires up Postgres and waits for it to be ready. It uses docker-compose file to perform the task.
var file = Path.Combine(Directory.GetCurrentDirectory(),
(TemplateString) "Resources/ComposeTests/WordPress/docker-compose.yml");
// @formatter:off
using (var svc = new Builder()
.UseContainer()
.UseCompose()
.FromFile(file)
.RemoveOrphans()
.WaitForHttp("wordpress", "http://localhost:8000/wp-admin/install.php")
.Build().Start())
// @formatter:on
{
// We now have a running WordPress with a MySql database
var installPage = await "http://localhost:8000/wp-admin/install.php".Wget();
Assert.IsTrue(installPage.IndexOf("https://wordpress.org/", StringComparison.Ordinal) != -1);
Assert.AreEqual(1, svc.Hosts.Count); // The host used by compose
Assert.AreEqual(2, svc.Containers.Count); // We can access each individual container
Assert.AreEqual(2, svc.Images.Count); // And the images used.
}
👀 It has tons of features, including a low-level command style, services and finally, the Fluent API on top of it.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.1)
- SharpCompress (>= 0.29.0)
- System.Runtime.InteropServices.RuntimeInformation (>= 4.3.0)
-
net6.0
- Newtonsoft.Json (>= 13.0.1)
- SharpCompress (>= 0.29.0)
-
net8.0
- Newtonsoft.Json (>= 13.0.1)
- SharpCompress (>= 0.29.0)
NuGet packages (23)
Showing the top 5 NuGet packages that depend on Ductus.FluentDocker:
| Package | Downloads |
|---|---|
|
Ductus.FluentDocker.XUnit
XUnit Support to allow for create, run one or more docker images while testing using docker, compose, machine (Linux, Windows, Mac) using netcore or full framework. Documentation: https://github.com/mariotoffia/FluentDocker |
|
|
Ductus.FluentDocker.MsTest
Ms Test Support to allow for create, run one or more docker images while testing using docker, compose, machine (Linux, Windows, Mac) using netcore or full framework. Documentation: https://github.com/mariotoffia/FluentDocker |
|
|
NinjaTools.FluentMockServer
A C# Client for the MockServer Docker Image |
|
|
Be.Vlaanderen.Basisregisters.DockerUtilities
Docker utilities for C#. |
|
|
CodeDesignPlus.Net.xUnit.Microservice
A library designed to optimize and facilitate unit testing for microservices using xUnit in .NET Core. |
GitHub repositories (7)
Showing the top 7 popular GitHub repositories that depend on Ductus.FluentDocker:
| Repository | Stars |
|---|---|
|
Xabaril/AspNetCore.Diagnostics.HealthChecks
Enterprise HealthChecks for ASP.NET Core Diagnostics Package
|
|
|
danielgerlag/conductor
Distributed workflow server
|
|
|
SQLStreamStore/SQLStreamStore
Stream Store library targeting RDBMS based implementations for .NET
|
|
|
axzxs2001/Asp.NetCoreExperiment
原来所有项目都移动到**OleVersion**目录下进行保留。新的案例装以.net 5.0为主,一部分对以前案例进行升级,一部分将以前的工作经验总结出来,以供大家参考!
|
|
|
nmklotas/GitLabApiClient
GitLab API client
|
|
|
pdevito3/QueryKit
🎛️ QueryKit is a .NET library that makes it easier to query your data by providing a fluent and intuitive syntax for filtering and sorting.
|
|
|
kurrent-io/KurrentDB-Client-Dotnet
KurrentDB .NET Client
|
| Version | Downloads | Last Updated |
|---|---|---|
| 2.85.0 | 188,698 | 7/25/2025 |
| 2.84.0 | 1,765 | 7/25/2025 |
| 2.83.0 | 25,281 | 6/27/2025 |
| 2.82.0 | 1,052 | 6/27/2025 |
| 2.81.0 | 1,073 | 6/27/2025 |
| 2.80.0 | 1,539 | 6/27/2025 |
| 2.79.0 | 6,771 | 6/27/2025 |
| 2.10.59 | 3,332,197 | 1/11/2023 |
| 2.10.57 | 460,358 | 9/24/2022 |
| 2.10.56 | 95,788 | 8/24/2022 |
| 2.10.55 | 178,880 | 6/24/2022 |
| 2.10.54 | 1,837 | 6/24/2022 |
| 2.10.53 | 3,607 | 6/23/2022 |
| 2.10.51 | 36,119 | 6/7/2022 |
| 2.10.50 | 2,256 | 6/7/2022 |
| 2.10.48 | 11,887 | 5/30/2022 |
| 2.10.46 | 2,239 | 5/30/2022 |
| 2.10.45 | 335,632 | 3/9/2022 |
| 2.10.44 | 337,496 | 12/8/2021 |
| 2.10.42 | 162,304 | 11/24/2021 |