DrydockDrydock
ConfigurationContainer Actions

Container Actions

Start, stop, restart, update, and delete containers directly from drydock.

Overview

Drydock provides direct container management actions through both the UI and API. These actions let you control containers without leaving the drydock interface.

Available actions

ActionAPI endpointDescription
StartPOST /api/v1/containers/:id/startStart a stopped container
StopPOST /api/v1/containers/:id/stopStop a running container
RestartPOST /api/v1/containers/:id/restartRestart a container
UpdatePOST /api/v1/containers/:id/updatePull new image and recreate container
DeleteDELETE /api/v1/containers/:idRemove container from drydock tracking

Feature flags

Container actions can be individually toggled with environment variables:

Env varRequiredDescriptionSupported valuesDefault value when missing
DD_SERVER_FEATURE_CONTAINERACTIONSEnable start, stop, restart, and update actionstrue, falsetrue
DD_SERVER_FEATURE_DELETEEnable container deletiontrue, falsetrue
When a feature flag is disabled, the corresponding buttons are hidden in the UI and the API endpoints return 403 Forbidden.
Container action endpoints currently use an authentication-only, single-operator trust model. Any authenticated user can start, stop, restart, update, or delete any container. Run drydock behind trusted SSO/access controls until fine-grained RBAC is available.

Trigger configuration aliases

Container updates are executed by action triggers (Docker, Docker Compose, Command). These triggers can be configured with three environment variable prefixes that are treated identically:

PrefixStatus
DD_ACTION_*Current — recommended for action triggers
DD_NOTIFICATION_*Current — recommended for notification triggers
DD_TRIGGER_*Deprecated — removal in v1.7.0

When the same trigger is defined under multiple prefixes, the merge priority is: DD_NOTIFICATION_* > DD_ACTION_* > DD_TRIGGER_*.

Container labels follow the same pattern: dd.action.include / dd.action.exclude replace the deprecated dd.trigger.include / dd.trigger.exclude.

Action triggers (Docker, Docker Compose, Command) default to AUTO=oninclude, meaning they only auto-update containers that have an explicit dd.action.include label matching the trigger name. Notification triggers default to AUTO=true.

See Triggers for full trigger configuration reference and the migration CLI for automated prefix rewriting.

Update action

The update action triggers the Docker or Docker Compose trigger for the selected container. It will:

  1. Pull the latest image
  2. Backup the current image
  3. Run lifecycle hooks (if configured)
  4. Stop and remove the current container
  5. Create and start the new container
  6. Monitor health (if auto-rollback is enabled)

See Lifecycle Hooks and Backup & Rollback for related configuration.

Preview

Before updating, you can preview what will change using the dry-run endpoint:

POST /api/v1/containers/:id/preview

This returns the proposed changes without executing them.

Metrics

All container actions are tracked via Prometheus counters. See Monitoring for details.

Example — disable all actions

services:
  drydock:
    image: codeswhat/drydock
    environment:
      - DD_SERVER_FEATURE_CONTAINERACTIONS=false
      - DD_SERVER_FEATURE_DELETE=false

On this page