dockerDocker

This guide covers installing the Dstl 8 agent on Docker hosts.

Prerequisites

  • Docker installed and running

  • Organization ID (provided by Dstl8)

  • Cluster/Group name (optional, defaults to docker)

  • Deployment environment label (e.g., prod, dev, staging)

  • Docker admission token (generated in the Dstl8 UI)

  • Config and data endpoint URLs (provided in the Dstl8 UI)


Installation

Quick Install

The Dstl 8 UI generates a custom installation command for your Docker host. Simply provide your deployment environment and optionally a cluster/group name, and the UI will generate the complete command with all required credentials.

Generated Command Example:

curl -fsSL https://install.controltheory.com/scripts/install.sh -o install.sh && bash install.sh \
  -p docker \
  -i <org-id> \
  --docker-token <token> \
  --config-endpoint <config-url> \
  --data-endpoint <data-host:port> \
  --cluster-name <host-name> \
  -e <environment>

Installation Options

With Custom Cluster/Group Name:

Without Cluster Name (Uses Default):

If you don't specify a cluster name, it defaults to docker:

Custom Docker Image Tag:

To install a specific version of the agent:


What Gets Installed

The installation script:

  1. Pulls the ControlTheory supervisor Docker image (controltheory/supervisor)

  2. Creates a Docker container with the necessary configuration

  3. Connects the agent to your Dstl 8 organization

  4. Starts monitoring and telemetry collection

  5. Exposes OTLP receiver ports for accepting telemetry data

Default Docker Image: controltheory/supervisor:v1.3.10

OTLP Receiver

The Docker agent runs as an OTLP (OpenTelemetry Protocol) receiver and automatically exposes the following ports on the host:

  • Port 4317 - OTLP gRPC endpoint (mapped to container port 1757)

  • Port 4318 - OTLP HTTP endpoint (mapped to container port 1758)

Applications running on the same host or network can send OpenTelemetry data to these endpoints:


Verify Installation

After installation, check the status of your Docker agent:

This command displays:

  • Container running status

  • Container ID and name

  • Image version

  • Configuration details

  • Health check information

Manual Container Check:

You can also verify the container is running:

View Container Logs:

To see the agent logs:

Or follow logs in real-time:


Uninstall

To completely remove the Dstl 8 agent from your Docker host:

This command:

  • Stops the ControlTheory supervisor container

  • Removes the container

  • Cleans up associated resources

Note: The Docker image is not removed. To manually remove the image:


Troubleshooting

Common Issues

Container Not Starting:

Check the container logs for errors:

Common causes:

  • Incorrect admission token

  • Network connectivity issues

  • Port conflicts (ports 4317/4318 already in use)

Port Conflicts:

The Docker agent requires ports 4317 (OTLP gRPC) and 4318 (OTLP HTTP) to be available. If these ports are already in use, you'll see an error during installation.

Check which processes are using these ports:

Or on some systems:

You'll need to stop the conflicting service or modify the Docker container's port mappings.

Network Connectivity:

Verify the Docker host can reach the config and data endpoints:

Permission Denied:

Ensure your user has permission to run Docker commands. You may need to:

Then log out and back in for changes to take effect.

Container Crashes or Restarts:

Check container restart count:

Review container logs to identify the cause of crashes.

Getting Help

For installation issues:

  1. Run the status check: bash install.sh -o status -p docker

  2. Collect container logs: docker logs <container-id>

  3. Verify network connectivity to endpoints

  4. Contact Dstl 8 support with the diagnostic information


Advanced Configuration

Running Multiple Agents

You can run multiple Dstl 8 agents on the same host by using different cluster names:

Custom Docker Configuration

The installation script uses standard Docker commands. For advanced use cases, you can:

Specify Docker Network:

Modify the installation script or run the container with a specific network:

Mount Additional Volumes:

For custom configurations or logs, you can manually adjust volume mounts after reviewing the install script's Docker run command.


Container Management

Start/Stop the Agent

Stop the agent:

Start the agent:

Restart the agent:

Update the Agent

To update to a newer version:

  1. Stop and remove the existing container:

  2. Run the installation with the new image tag:


Version Information

Current installer version: v1.2.3 Default Docker image: controltheory/supervisor:v1.3.10

To check the installer version:

To view all available options:

To check the running container's image version:

Last updated