This page covers the core Pod management operations. For CLI usage, first install the Runpod CLI and configure your API key:
runpodctl config --apiKey RUNPOD_API_KEY
Quick reference
| Action | Web UI | CLI |
|---|
| Deploy | Pods page → Deploy | runpodctl create pods --name NAME --gpuType "GPU" --imageName "IMAGE" |
| Start | Expand Pod → Play icon | runpodctl start pod POD_ID |
| Stop | Expand Pod → Stop icon | runpodctl stop pod POD_ID |
| Update | Three-dot menu → Edit Pod | — |
| Terminate | Expand Pod → Trash icon | runpodctl remove pod POD_ID |
| List | Pods page | runpodctl get pod |
Deploy a Pod
Deploy preconfigured Pods from the Runpod Hub for quick setup.
- Open the Pods page and click Deploy.
- (Optional) Attach a network volume for persistent storage.
- Select GPU or CPU, then configure:
GPU: Select GPU type → Name your Pod → (Optional) Choose a template → Set GPU count → Click Deploy On-DemandCPU: Select CPU type → Choose instance configuration → Name your Pod → Click Deploy On-DemandCUDA compatibility: Ensure the host CUDA version matches your requirements. If you see “OCI runtime create failed” errors, use Additional filters → CUDA Versions to select compatible machines.
runpodctl create pods \
--name hello-world \
--gpuType "NVIDIA A40" \
--imageName "runpod/pytorch:3.10-2.0.0-117" \
--containerDiskSize 10 \
--volumeSize 100
curl --request POST \
--url https://rest.runpod.io/v1/pods \
--header 'Authorization: Bearer RUNPOD_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "my-pod",
"imageName": "runpod/pytorch:2.1.0-py3.10-cuda11.8.0-devel-ubuntu22.04",
"gpuTypeIds": ["NVIDIA GeForce RTX 4090"],
"gpuCount": 1,
"containerDiskInGb": 50,
"volumeInGb": 20
}'
To deploy a Pod from an existing template, use the templateId parameter instead of specifying individual configuration options:curl --request POST \
--url https://rest.runpod.io/v1/pods \
--header 'Authorization: Bearer RUNPOD_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "my-pod-from-template",
"templateId": "YOUR_TEMPLATE_ID",
"gpuTypeIds": ["NVIDIA GeForce RTX 4090"],
"gpuCount": 1
}'
See the Pod API reference for all parameters.
Stop a Pod
Stopping a Pod releases the GPU and preserves data in /workspace (volume disk). Container disk data is cleared.
You’ll still be charged for volume disk storage while stopped. Terminate the Pod if you don’t need to retain your environment.
Pods with network volumes attached cannot be stopped, only terminated. Your /workspace data is preserved in the network volume.
- Open the Pods page and expand your Pod.
- Click the Stop button (square icon) and confirm.
runpodctl stop pod $RUNPOD_POD_ID
Schedule a stop (e.g., after 2 hours):sleep 2h; runpodctl stop pod $RUNPOD_POD_ID &
curl --request POST \
--url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID/stop" \
--header 'Authorization: Bearer RUNPOD_API_KEY'
Start a Pod
Resume a stopped Pod. Note: You may be allocated zero GPUs if capacity has changed.
- Open the Pods page and expand your Pod.
- Click the Start button (play icon).
runpodctl start pod $RUNPOD_POD_ID
curl --request POST \
--url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID/start" \
--header 'Authorization: Bearer RUNPOD_API_KEY'
Update a Pod
Modify an existing Pod’s configuration, such as storage size, image, ports, or environment variables.
Editing a running Pod resets it completely, erasing all data not stored in /workspace or a network volume.
- Open the Pods page.
- Click the three-dot menu next to the Pod you want to update.
- Click Edit Pod and modify your configuration.
- Click Save to apply changes.
curl --request PATCH \
--url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID" \
--header 'Authorization: Bearer RUNPOD_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"containerDiskInGb": 100,
"volumeInGb": 200
}'
See the Pod API reference for all editable fields.
Terminate a Pod
Terminating permanently deletes all data not stored in a network volume. Export important data first.
- Open the Pods page and expand your Pod.
- Stop the Pod if running, then click Terminate (trash icon) and confirm.
# Single Pod
runpodctl remove pod $RUNPOD_POD_ID
# Bulk remove by name
runpodctl remove pods my-bulk-task --podCount 40
curl --request DELETE \
--url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID" \
--header 'Authorization: Bearer RUNPOD_API_KEY'
View logs
Pods provide two log types:
- Container logs: Application output (stdout)
- System logs: Pod lifecycle events (startup, shutdown, errors)
Access logs from the Pods page by expanding your Pod and clicking Logs.
Troubleshooting
| Issue | Solution |
|---|
| Zero GPUs on restart | See Zero GPU Pods |
| Pod stuck initializing | Check logs for command errors; ensure you have an idle job (e.g., sleep infinity) if using SSH |
| Docker Compose not working | Not supported. Use a custom template with your dependencies baked in. |
Need help? Contact support.