You need docker to be installed on your machine. Tested both on Windows and Linux.
Run this in your package manager console:
Install-Package TestEnvironment.Docker
To add container specific functionality for MSSQL and Elasticsearch:
Install-Package TestEnvironment.Docker.Containers.Elasticsearch
Install-Package TestEnvironment.Docker.Containers.Mssql
// Create the environment using builder pattern
var environment = new DockerEnvironmentBuilder()
.AddContainer("my-nginx", "nginx")
.AddElasticsearchContainer("my-elastic")
.AddMssqlContainer("my-mssql", "HelloK11tt_0")
.Build();
// Up it.
await environment.Up();
// Play with containers.
var mssql = environment.GetContainer<MssqlContainer>("my-mssql");
var elastic = environment.GetContainer<ElasticsearchContainer>("my-elastic");
// Down it.
await environment.Down();
// Dispose (remove).
environment.Dispose();
In case of unpredictable behaviour try to remove the containers manually via command line:
docker rm -f (docker ps -a -q)