Files
compose-anything/builds/debian-dind
Sun-ZhenXing 9c25970445 chore: format
2026-01-01 17:18:52 +08:00
..
2025-12-29 18:05:34 +08:00
2026-01-01 17:18:52 +08:00
2025-12-29 18:05:34 +08:00
2025-12-29 18:05:34 +08:00
2025-12-29 18:05:34 +08:00
2025-12-29 18:05:34 +08:00

Debian DinD

A Docker-in-Docker (DinD) service based on Debian, allowing you to run Docker inside a Docker container. Useful for CI/CD pipelines, development environments, and containerized build systems.

Features

  • Based on latest stable Debian (13.2-slim)
  • Out-of-the-box Docker daemon
  • Optional NVIDIA Container Toolkit for GPU support
  • Resource limits configured
  • Healthcheck included
  • Customizable via environment variables

Quick Start

  1. Copy the example environment file:

    cp .env.example .env
    
  2. Start the service:

    docker compose up -d
    
  3. Verify Docker is running inside the container:

    docker compose exec dind docker info
    docker compose exec dind docker run hello-world
    

Configuration

Key environment variables (see .env.example for all options):

Variable Description Default
DEBIAN_VERSION Debian base image version 13.2-slim
DIND_PORT_OVERRIDE Host port for Docker daemon 2375
INSTALL_NVIDIA_TOOLKIT Install NVIDIA toolkit during build false
TZ Timezone UTC
DIND_CPU_LIMIT CPU limit 2.0
DIND_MEMORY_LIMIT Memory limit 4G

GPU Support

To use DinD with GPU support:

  1. Set INSTALL_NVIDIA_TOOLKIT=true in .env

  2. Use the gpu profile:

    docker compose --profile gpu up -d
    

Or use the dedicated GPU service:

docker compose up -d dind-gpu

Security Considerations

⚠️ Important: This service runs in privileged mode, which grants the container extensive access to the host system. Only use this in trusted environments.

  • Privileged mode is required for DinD to function
  • Docker daemon exposed on port 2375 without TLS (development only)
  • For production, enable TLS by setting DOCKER_TLS_CERTDIR=/certs

Volume

  • dind-data: Stores Docker daemon data (images, containers, volumes)
  • dind-gpu-data: Separate volume for GPU-enabled service

Resource Limits

Default resource limits:

  • CPU: 2.0 cores (limit), 1.0 core (reservation)
  • Memory: 4GB (limit), 2GB (reservation)

Adjust these in .env based on your workload.

Advanced Usage

Connect from host

You can connect to the Docker daemon from your host machine:

export DOCKER_HOST=tcp://localhost:2375
docker info

Use in CI/CD

Example GitLab CI configuration:

services:
  - name: your-registry/debian-dind:latest
    alias: docker

variables:
  DOCKER_HOST: tcp://docker:2375

Build Arguments

When building the image manually:

  • DEBIAN_VERSION: Debian base version (default: 13.2-slim)
  • INSTALL_NVIDIA_TOOLKIT: Install NVIDIA toolkit (default: false)

Example:

docker build --build-arg DEBIAN_VERSION=13.2-slim --build-arg INSTALL_NVIDIA_TOOLKIT=true -t debian-dind-gpu .

License

This configuration is provided as-is for use with the Compose Anything project.