What is Docker?
Docker is a platform for packaging an application together with everything it needs to run - code, runtime, libraries and configuration - into a single, portable unit called a container. Containers are isolated from one another and from the host, so an app behaves the same wherever it runs.
Containers are a clean way to deploy custom applications and microservices: the container holds the exact environment the app expects, and the host only needs to run the container engine. On TurboStack, Docker lets you run such containerized applications alongside TurboStack's managed web, Transport Layer Security (TLS) and security layers.
On TurboStack
Docker is enabled per application under Configure application > Technologies > Docker.
-
When you enable it, TurboStack provisions Docker for the application so you can run a containerized application.
-
The container listens on its own port; Nginx reverse-proxies to that port, so combine Docker with the reverse proxy to publish the app behind TurboStack's public front door (TLS, caching, security).
-
This is a good fit for custom applications and microservices that ship as containers rather than as a standard PHP or runtime app.
Note
Docker runs your container, but it does not expose it to the internet on its own. Pair it with the reverse proxy so Nginx forwards public traffic to the container's port.
Best practices
-
Run one main process per container and keep images small and purpose-built.
-
Bind the container's published port to loopback and let Nginx proxy to it, rather than exposing it publicly.
-
Pin image versions (avoid relying on
latest) so deployments are reproducible. -
Configure the container to restart automatically so the upstream stays available behind the proxy.
-
Keep persistent data on mounted volumes, not inside the container's writable layer.