Hvis du er igang med at lave integrations tests (eller bare gerne vil spinne dine containere op fra kode), kan du gøre brug af Docker.DotNet. Du skal blot refererer Docker.DotNet:

    <PackageReference Include="Docker.DotNet" Version="3.125.2" />

I det givne projekt. Derefter kan du begynde at hente billeder ned:

    DockerClient client = new DockerClientConfiguration(new Uri("npipe://./pipe/docker_engine")).CreateClient();
    var response = await client.Images.CreateImageAsync(new ImagesCreateParameters
    {
        FromImage = "consul",
        Tag = "latest"
    }, new AuthConfig(), new Progress<JSONMessage>());

Her er det windows versionen. Du skal selvfølgelig have docker til windows installeret. Please note at eksemplerne fra deres readme på github er uddaterede, men overstående virker.

Hvis du gerne vil lave lave en container kan du kalde:

    client.Containers.CreateContainerAsync(...)

Du kan derefter hente container id'et fra response:

    string containerId = response.ID;

og starte containeren:

    await client.Containers.StartContainerAsync(containerId, null);

Vil du dræbe containeren, kan det gøres med:

    await client.Containers.KillContainerAsync(containerId, new ContainerKillParameters());

Herefter er det kun fantasien der sætter grænser :)