Help us shape the future of Go! Take the 2026 Go Developer Survey

dind

package module
v0.44.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Container

type Container struct {
	testcontainers.Container
}

Container represents the Docker in Docker container type used in the module

func Run

Run creates an instance of the Docker in Docker container type

Example
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/moby/moby/client"

	"github.com/testcontainers/testcontainers-go"
	"github.com/testcontainers/testcontainers-go/modules/dind"
)

func main() {
	// runDinDContainer {
	ctx := context.Background()

	dindContainer, err := dind.Run(ctx, "docker:28.0.1-dind")
	defer func() {
		if err := testcontainers.TerminateContainer(dindContainer); err != nil {
			log.Printf("failed to terminate container: %s", err)
		}
	}()
	if err != nil {
		log.Printf("failed to start container: %s", err)
		return
	}
	// }

	// Retrieve the host where the DinD daemon is listening
	// didnHost {
	host, err := dindContainer.Host(ctx)
	if err != nil {
		log.Printf("failed to get docker host: %s", err)
		return
	}
	// }

	// getDockerClient {
	cli, err := client.New(client.WithHost(host))
	if err != nil {
		log.Printf("failed to create docker client: %s", err)
		return
	}
	// }

	version, err := cli.ServerVersion(ctx, client.ServerVersionOptions{})
	if err != nil {
		log.Printf("failed to get server version: %s", err)
		return
	}

	fmt.Println(version.APIVersion)

	// The output will vary depending on the Docker version used in the DinD container.
	// This is the negotiated API version between the client and the server.
	

func (*Container) Host

func (c *Container) Host(ctx context.Context) (string, error)

Host returns the endpoint to connect to the Docker daemon running inside the DinD container.

func (*Container) LoadImage

func (c *Container) LoadImage(ctx context.Context, image string) (err error)

LoadImage loads an image into the DinD container. It creates a temporary file to save the image and then copies it to the container. This temporary file is deleted after the function returns.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL