Skip to main content

Overview

Dokploy supports connecting to Docker container registries to pull base images and push built application images. Configure multiple registries for different purposes.

Registry Types

Dokploy supports two types of container registries:
enum
default:"cloud"
Registry type
  • cloud - Cloud-hosted registry (Docker Hub, GitHub Container Registry, etc.)
  • selfHosted - Self-hosted registry

Configuration

Basic Settings

string
required
Display name for the registry
string
required
Registry URL
string
required
Registry username or access key
string
required
Registry password, access token, or secret
Store passwords securely. Never commit them to version control.
string
Prefix for image names (useful for namespacing)

Docker Hub

The default public container registry.

Creating Docker Hub Token

  1. Log in to Docker Hub
  2. Go to Account Settings > Security
  3. Click “New Access Token”
  4. Give it a description and set permissions
  5. Copy the token (shown only once)

GitHub Container Registry (GHCR)

Store container images alongside your GitHub repositories.

Creating GitHub Token

  1. Go to GitHub Settings > Developer settings > Personal access tokens
  2. Generate new token (classic)
  3. Select scopes:
    • write:packages - Upload packages
    • read:packages - Download packages
    • delete:packages - Delete packages (optional)
  4. Copy the token

AWS Elastic Container Registry (ECR)

Amazon’s container registry service.
AWS ECR tokens expire after 12 hours. Consider using an IAM role or automated token refresh.

Google Container Registry (GCR)

Google Cloud’s container registry.

Azure Container Registry (ACR)

Microsoft Azure’s container registry.

Self-Hosted Registry

Connect to your own Docker registry.

Testing Registry Connection

Before using a registry, test the connection:

Test Before Creating

Test Existing Registry

Successful test response:

Managing Registries

List All Registries

Response:
Passwords are not returned in list responses for security.

Get Single Registry

Update Registry

Delete Registry

Deleting a registry may affect applications that use it for pulling base images or pushing built images.

Using Registries

For Pulling Images

When deploying applications, Dokploy can pull base images from configured registries:

For Pushing Built Images

After building an application, Dokploy can push the image to a registry:

Rollback Registry

Store previous image versions for rollbacks:

Server-Specific Registries

For multi-server deployments, specify which server to test against:

Authentication Methods

Username/Password

Basic authentication with username and password:

Access Tokens

Many registries use personal access tokens:

Service Accounts

Cloud providers often use JSON key files:

Security Best Practices

Credential Management

  1. Rotate Regularly: Change registry passwords every 90 days
  2. Least Privilege: Grant only necessary permissions
  3. Separate Credentials: Use different credentials for dev/prod
  4. Token Expiration: Use short-lived tokens when possible

Registry Security

  1. Private Registries: Use private registries for proprietary images
  2. Image Scanning: Enable vulnerability scanning
  3. Image Signing: Sign images for authenticity
  4. Access Logs: Monitor registry access logs

Network Security

  1. HTTPS Only: Always use HTTPS for registry URLs
  2. VPC/Private Network: Use private networks when possible
  3. Firewall Rules: Restrict registry access by IP
  4. Rate Limiting: Implement rate limits to prevent abuse

Troubleshooting

Connection Issues

  • Verify username and password are correct
  • Check if credentials have expired
  • Ensure registry URL is correct
  • Confirm registry is accessible from server
  • Verify write permissions
  • Check disk space on server
  • Ensure image name matches registry prefix
  • Confirm network connectivity
  • Verify read permissions
  • Check if image exists in registry
  • Ensure correct image name and tag
  • Confirm credentials are valid

Common Errors

Database Schema

Registry configuration is stored in the registry table:

API Reference

Example: Complete Workflow