Ductus.FluentDocker 2.85.0

FluentDocker

CI NuGet Downloads License

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.

No packages depend on Ductus.FluentDocker.

.NET 6.0

.NET 8.0

.NET Standard 2.0

Version Downloads Last updated
2.85.0 8 04/30/2026
2.84.0 8 04/30/2026
2.83.0 7 04/30/2026
2.82.0 6 04/30/2026
2.81.0 7 04/30/2026
2.80.0 6 04/30/2026
2.79.0 6 04/30/2026
2.10.59 9 04/29/2026
2.10.57 6 04/30/2026
2.10.56 8 04/30/2026
2.10.55 8 04/30/2026
2.10.54 6 04/30/2026
2.10.53 7 04/30/2026
2.10.51 7 04/30/2026
2.10.50 7 04/30/2026
2.10.48 8 04/30/2026
2.10.46 6 04/30/2026
2.10.45 7 04/30/2026
2.10.44 8 04/30/2026
2.10.42 6 04/30/2026
2.10.41 7 04/30/2026
2.10.40 6 04/30/2026
2.10.39 5 04/30/2026
2.10.35 6 04/30/2026
2.10.25 7 04/30/2026
2.10.23 7 04/30/2026
2.10.22 7 04/30/2026
2.10.21 7 04/30/2026
2.10.20 6 04/30/2026
2.10.19 6 04/30/2026
2.10.17 7 04/30/2026
2.10.16 7 04/30/2026
2.10.15 6 04/30/2026
2.10.14 6 04/30/2026
2.10.12 7 04/30/2026
2.10.10 6 04/30/2026
2.10.8 7 04/30/2026
2.10.7 7 04/30/2026
2.10.6 6 04/30/2026
2.10.5 6 04/30/2026
2.10.3 7 04/30/2026
2.10.2 7 04/30/2026
2.9.4 6 04/30/2026
2.9.3-beta.2 7 04/30/2026
2.8.14-beta.22 8 04/30/2026
2.8.13-beta.21 8 04/30/2026
2.8.12-beta.20 7 04/30/2026
2.8.11-beta.19 7 04/30/2026
2.8.10-beta.18 7 04/30/2026
2.8.9-beta.17 7 04/30/2026
2.8.8-beta.14 7 04/30/2026
2.8.7-beta.9 6 04/30/2026
2.8.5-beta.4 7 04/30/2026
2.8.5-beta.2 7 04/30/2026
2.8.4-beta.3 6 04/30/2026
2.8.3 8 04/30/2026
2.8.2 7 04/30/2026
2.7.80-beta.159 5 04/30/2026
2.7.71-beta.150 7 04/30/2026
2.7.69-beta.147 7 04/30/2026
2.7.68-beta.146 8 04/30/2026
2.7.66-beta.142 7 04/30/2026
2.7.65-beta.141 6 04/30/2026
2.7.64-beta.140 6 04/30/2026
2.7.62-beta.138 7 04/30/2026
2.7.60-beta.127 7 04/30/2026
2.7.59-beta0123 7 04/30/2026
2.7.58-beta0122 6 04/30/2026
2.7.54-beta0117 7 04/30/2026
2.7.53-beta0116 7 04/30/2026
2.7.52-beta0105 6 04/30/2026
2.7.51-beta0102 6 04/30/2026
2.7.50-beta0094 8 04/30/2026
2.7.49-beta0091 7 04/30/2026
2.7.48-beta0087 6 04/30/2026
2.7.47-beta0081 7 04/30/2026
2.7.46-beta0080 7 04/30/2026
2.7.45-beta0079 6 04/30/2026
2.7.44-beta0078 7 04/30/2026
2.7.42-beta0076 7 04/30/2026
2.7.41-beta0075 7 04/30/2026
2.7.38-beta0072 7 04/30/2026
2.7.37-beta0071 7 04/30/2026
2.7.36-beta0070 7 04/30/2026
2.7.35-beta0069 7 04/30/2026
2.7.34-beta0068 8 04/30/2026
2.7.33-beta0067 6 04/30/2026
2.7.32-beta0066 7 04/30/2026
2.7.31-beta0064 5 04/30/2026
2.7.30-beta0050 6 04/30/2026
2.7.29-beta0046 4 04/30/2026
2.7.28-beta0045 6 04/30/2026
2.7.27-beta0043 7 04/30/2026
2.7.21-beta0036 7 04/30/2026
2.7.20-beta0032 6 04/30/2026
2.7.19-beta0030 8 04/30/2026
2.7.4-beta0001 6 04/30/2026
2.7.3 6 04/30/2026
2.7.2 7 04/30/2026
2.7.1 8 04/30/2026
2.7.0 5 04/30/2026
2.6.9 8 04/30/2026
2.6.8 6 04/30/2026
2.6.7 6 04/30/2026
2.6.6 6 04/30/2026
2.6.5 9 04/30/2026
2.6.4 7 04/30/2026
2.6.3 8 04/30/2026
2.6.2 6 04/30/2026
2.6.1 6 04/30/2026
2.6.0 9 04/30/2026
2.5.1 8 04/30/2026
2.5.0 7 04/30/2026
2.4.1 7 04/30/2026
2.4.0 8 04/30/2026
2.3.2 6 04/30/2026
2.3.1 7 04/30/2026
2.3.0 8 04/30/2026
2.2.19 7 04/30/2026
2.2.18 6 04/30/2026
2.2.17 8 04/30/2026
2.2.16 7 04/30/2026
2.2.15 7 04/30/2026
2.2.14 7 04/30/2026
2.2.13 6 04/30/2026
2.2.12 7 04/30/2026
2.2.11 7 04/30/2026
2.2.10 8 04/30/2026
2.2.9 6 04/30/2026
2.2.8 7 04/30/2026
2.2.7 7 04/30/2026
2.2.6 7 04/30/2026
2.2.5 7 04/30/2026
2.2.4 8 04/30/2026
2.2.3 7 04/30/2026
2.2.2 6 04/30/2026
2.2.1 6 04/30/2026
2.2.0 2 04/30/2026
2.1.1 8 04/30/2026
2.0.0 7 04/30/2026
1.1.4 8 04/30/2026
1.1.3 7 04/30/2026
1.1.2 7 04/30/2026
1.1.1 7 04/30/2026
1.1.0 6 04/30/2026
1.0.3 8 04/30/2026
1.0.2 6 04/30/2026
1.0.1 7 04/30/2026
1.0.0 7 04/30/2026