Frequently Asked Questions

Find answers to common questions about DSO, secret management, and deployment

Verified

Verified against official documentation

Last verified: May 10, 2026

Getting Started

What is Docker Secret Operator?

DSO is a runtime secret injection system for Docker containers. It eliminates the need to store secrets in environment variables or config files by injecting them from external sources (local encrypted vault, AWS Secrets Manager, Azure Key Vault, etc.) directly into container memory at startup.

Do I need Kubernetes to use DSO?

No. DSO is explicitly designed for teams NOT using Kubernetes. It's built for Docker Compose and Docker-native deployments. If you're on Kubernetes, consider External Secrets Operator (ESO) instead.

Can I use DSO in development?

Yes. DSO's Local Mode provides an encrypted vault for development without needing cloud accounts. It's perfect for learning DSO patterns before deploying to production.

What providers does DSO support?

DSO supports AWS Secrets Manager, Azure Key Vault, HashiCorp Vault, Huawei Cloud CSMS, and Local Mode (encrypted vault). See /integrations for complete setup guides.

Security & Operations

How does zero-persistence work?

Secrets are fetched at runtime and injected into container environment variables in memory. They're never written to disk, logs, or container inspect output. When the container stops, the secret is gone.

Are my secrets encrypted in transit?

Yes. All communication with cloud providers (AWS, Azure, etc.) uses TLS 1.2+. Local Mode uses AES-256-GCM encryption for secrets at rest.

How does secret rotation work?

DSO polls your secret provider at configurable intervals (default 2 minutes). When a change is detected, DSO applies your reload_strategy: restart (restart container), rolling (rolling restart), or signal (send SIGHUP).

Can I use DSO with a container registry?

Yes. DSO works with any registry. Your images don't contain secrets—they only contain references like dso://my-secret. Actual secrets come from your configured provider.

Deployment & Integration

Does DSO work with Docker Compose?

Yes. DSO works seamlessly with Docker Compose. Use dso:// references in environment variables and run 'docker dso up' instead of 'docker compose up'.

Can multiple containers share the same secret?

Yes. Multiple containers can reference the same secret. Access control is managed by your provider's IAM (AWS IAM, Azure RBAC, etc.).

What happens if the secret provider is unavailable?

By default, DSO fails fast—the container won't start if secrets can't be fetched. This prevents containers from running with missing or stale secrets.

Can I use DSO with CI/CD pipelines?

Yes. DSO works in CI/CD as long as the runner has credentials to access your secret provider. For Local Mode, use the encrypted vault in your repository.

Troubleshooting

Secret not found error

Verify the secret name in dso.yaml matches exactly what's in your provider. Check that your credentials have permission to read that secret. Run 'docker dso doctor' for diagnostics.

Permission denied

Your credentials don't have permission to access that secret. For AWS: check IAM policy. For Azure: check RBAC role. For Vault: check AppRole permissions.

Container starts but secret is empty

Check that dso.yaml uses dso://SECRET_NAME syntax (not hardcoded values). Verify the secret exists in your provider. Check logs: 'docker dso logs container-name'

How do I debug secret injection?

Use 'docker dso doctor' to verify setup. Check 'docker dso logs' for detailed output. For container inspection: 'docker exec container env | grep SECRET' shows injected values.

Billing & Licensing

Is DSO free?

Yes. DSO is open source under Apache 2.0. You only pay for the secrets infrastructure (AWS charges ~$0.40/secret/month, etc.).

Can I use DSO commercially?

Yes. Apache 2.0 allows commercial use. Check the LICENSE file for full details.

What's the difference between DSO and paid alternatives?

DSO is open source and designed for developers. Paid alternatives add GUI, audit dashboards, and enterprise support. Choose DSO if you prefer CLI-driven simplicity.

Still have questions?

Check out the full documentation, join our community, or open an issue on GitHub.