diff --git a/docs.json b/docs.json
index 92fc6d80..c2860bf9 100644
--- a/docs.json
+++ b/docs.json
@@ -121,7 +121,8 @@
"docs/template/examples/nextjs-bun",
"docs/template/examples/expo",
"docs/template/examples/desktop",
- "docs/template/examples/claude-code"
+ "docs/template/examples/claude-code",
+ "docs/template/examples/docker"
]
},
"docs/template/migration-v2",
diff --git a/docs/template/examples/docker.mdx b/docs/template/examples/docker.mdx
new file mode 100644
index 00000000..718b5e2d
--- /dev/null
+++ b/docs/template/examples/docker.mdx
@@ -0,0 +1,92 @@
+---
+title: "Docker"
+description: "Sandbox with Docker installed for running containers"
+---
+
+## Install Docker
+
+Use the official installation script from [get.docker.com](https://get.docker.com). The `hello-world` container run validates the installation.
+
+
+```typescript JavaScript & TypeScript
+// template.ts
+import { Template } from 'e2b'
+
+export const template = Template()
+ .fromUbuntuImage('25.04')
+ .runCmd('curl -fsSL https://get.docker.com | sudo sh')
+ .runCmd('sudo docker run --rm hello-world')
+```
+
+```python Python
+# template.py
+from e2b import Template
+
+template = (
+ Template()
+ .from_ubuntu_image("25.04")
+ .run_cmd("curl -fsSL https://get.docker.com | sudo sh")
+ .run_cmd("sudo docker run --rm hello-world")
+)
+```
+
+
+## Build the template
+
+We recommend at least 2 CPUs and 2 GB of RAM for running Docker containers. **With lower RAM, your sandbox might run out of memory.**
+
+
+```typescript JavaScript & TypeScript
+// build.ts
+import { Template, defaultBuildLogger } from 'e2b'
+import { template as dockerTemplate } from './template'
+
+Template.build(dockerTemplate, 'docker', {
+ cpuCount: 2,
+ memoryMB: 2048,
+ onBuildLogs: defaultBuildLogger(),
+})
+```
+
+```python Python
+# build.py
+from e2b import Template, default_build_logger
+from .template import template as dockerTemplate
+
+Template.build(dockerTemplate, 'docker',
+ cpu_count=2,
+ memory_mb=2048,
+ on_build_logs=default_build_logger(),
+)
+```
+
+
+## Run containers
+
+Run an Alpine container that prints a hello message.
+
+
+```typescript JavaScript & TypeScript
+// sandbox.ts
+import { Sandbox } from 'e2b'
+
+const sbx = await Sandbox.create('docker')
+
+const result = await sbx.commands.run('sudo docker run --rm alpine echo "Hello from Alpine!"')
+console.log(result.stdout)
+
+await sbx.kill()
+```
+
+```python Python
+# sandbox.py
+from e2b import Sandbox
+
+sbx = Sandbox.create('docker')
+
+result = sbx.commands.run('sudo docker run --rm alpine echo "Hello from Alpine!"')
+print(result.stdout)
+
+sbx.kill()
+```
+