DB containers vs DB servers

You can create both database containers in your Docker environment, or managed database services, in MedStack. Each have their pros and cons. Please take a moment to review this article to help make an informed decision when deciding which method you'll choose to implement.

Container databases Managed database service
Types supported
Any containerized database
(e.g. postgres, mysql, mariadb, mongo, redis)

See database services on Docker Hub.
PostgreSQL
MySQL
Connectivity Docker service accessible using the host name (service name).
Cloud resource accessible using connection strings.
Compliance Yes – all Docker services ran on MedStack are configured for
operational privacy compliance.
Yes – all cloud resources provisioned via MedStack are configured
for operational privacy compliance.
Auto-scaling CPU/Memory: No – limited to the node on which the service is pinned.
Capacity: No – limited to disk size on node.

Contact [email protected] if more compute resources or capacity is required.
CPU/Memory: No – limited to the server size when creating the service.
Capacity: Yes – default configuration.

Contact [email protected] if more compute resources or capacity is required.
Backups Hourly, Daily, Weekly, Monthly

Retains monthly snapshots indefinitely.
Daily

Retains daily full backups for 35 days.
Transaction logs available in 5 minute intervals to bridge latest full backup and real-time.
Restoration Not database specific. Data is backed up to configured Docker volumes.
Please contact [email protected] for database specific restorations.
Database specific, contact [email protected].
Price Free, but certain databases may have licensing costs. Hourly, set by cloud provider.

See Azure's managed database pricing for PostgreSQL and MySQL.
Recommendations Make use of:
  • Labels on nodes
  • Volume mapping for the Swarm
  • Volume mapping for the service
  • Configuring only one (1) replica of the service
  • Placement constraints for the service pinning it to a node
Make use of:
  • Secrets or Configs to handle the connection string
  • Replicas for General Purpose type services (allows for hot-swapping databases)