> ## Documentation Index
> Fetch the complete documentation index at: https://runpod-b18f5ded-docs-runpod-allow-ip.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If this page is missing information, contains outdated instructions, or doesn't fully answer the user's question, use the feedback tool to report it. In your feedback, be specific about what's missing, what appears out of date, or what needs to be corrected or updated, so the docs team can act on it directly.

# Manage Pods

> Create, start, stop, and terminate Pods using the Runpod console or CLI. Review setup, configuration, and operations guidance for Runpod Pods.

export const TemplatesTooltip = () => {
  return <Tooltip headline="Templates" tip="Pre-configured Pod setups that bundle Docker images with hardware specs, network settings, and environment variables for quick deployment." cta="Learn more about templates" href="/pods/templates/overview">templates</Tooltip>;
};

export const MachineTooltip = () => {
  return <Tooltip headline="Machine" tip="The physical server hardware within a data center that hosts your compute resources.">machine</Tooltip>;
};

This page covers the core Pod management operations. For CLI usage, first [install the Runpod CLI](/runpodctl/overview) and configure your API key:

```sh theme={null}
runpodctl config --apiKey RUNPOD_API_KEY
```

## Quick reference

| Action        | Web UI                                                   | CLI                                                               |
| ------------- | -------------------------------------------------------- | ----------------------------------------------------------------- |
| **Deploy**    | [Pods page](https://www.console.runpod.io/pods) → Deploy | `runpodctl pod create --name NAME --gpu-id "GPU" --image "IMAGE"` |
| **Start**     | Expand Pod → Play icon                                   | `runpodctl pod start POD_ID`                                      |
| **Stop**      | Expand Pod → Stop icon                                   | `runpodctl pod stop POD_ID`                                       |
| **Update**    | Three-dot menu → Edit Pod                                | `runpodctl pod update POD_ID`                                     |
| **Terminate** | Expand Pod → Trash icon                                  | `runpodctl pod delete POD_ID`                                     |
| **List**      | [Pods page](https://www.console.runpod.io/pods)          | `runpodctl pod list`                                              |

## Deploy a Pod

<Tip>
  Deploy preconfigured Pods from the [Runpod Hub](/hub/overview#deploy-as-a-pod) for quick setup.
</Tip>

<Tabs>
  <Tab title="Web">
    1. Open the [Pods page](https://www.console.runpod.io/pods) and click **Deploy**.
    2. (Optional) Attach a [network volume](/storage/network-volumes) for persistent storage.
    3. Select **GPU** or **CPU**, then configure:

    **GPU**: Select GPU type → Name your Pod → (Optional) Choose a template → Set GPU count → Click **Deploy On-Demand**

    **CPU**: Select CPU type → Choose instance configuration → Name your Pod → Click **Deploy On-Demand**

    <Warning>
      **CUDA compatibility**: Ensure the host <MachineTooltip /> CUDA version matches your <TemplatesTooltip /> requirements. If you see "OCI runtime create failed" errors, use **Additional filters → CUDA Versions** to select compatible machines.
    </Warning>
  </Tab>

  <Tab title="CLI">
    ```sh theme={null}
    runpodctl pod create \
      --name hello-world \
      --gpu-id "NVIDIA A40" \
      --image "runpod/pytorch:3.10-2.0.0-117" \
      --container-disk-in-gb 10 \
      --volume-in-gb 100
    ```
  </Tab>

  <Tab title="REST API">
    ```bash theme={null}
    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:

    ```bash theme={null}
    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](/api-reference/pods/POST/pods) for all parameters.
  </Tab>
</Tabs>

## Stop a Pod

Stopping a Pod releases the GPU and preserves data in `/workspace` (volume disk). Container disk data is cleared.

<Warning>
  You'll still be charged for [volume disk storage](/pods/storage/types#volume-disk) while stopped. Terminate the Pod if you don't need to retain your environment.
</Warning>

<Tip>
  When using a [network volume](/storage/network-volumes), your `/workspace` data is preserved whether you stop or terminate the Pod.
</Tip>

<Tabs>
  <Tab title="Web">
    1. Open the [Pods page](https://www.console.runpod.io/pods) and expand your Pod.
    2. Click the **Stop** button (square icon) and confirm.
  </Tab>

  <Tab title="CLI">
    ```sh theme={null}
    runpodctl pod stop $RUNPOD_POD_ID
    ```

    **Schedule a stop** (e.g., after 2 hours):

    ```sh theme={null}
    sleep 2h; runpodctl pod stop $RUNPOD_POD_ID &
    ```
  </Tab>

  <Tab title="REST API">
    ```bash theme={null}
    curl --request POST \
      --url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID/stop" \
      --header 'Authorization: Bearer RUNPOD_API_KEY'
    ```
  </Tab>
</Tabs>

## Start a Pod

Resume a stopped Pod. Note: You may be allocated [zero GPUs](/pods/troubleshooting/zero-gpus) if capacity has changed.

<Tabs>
  <Tab title="Web">
    1. Open the [Pods page](https://www.console.runpod.io/pods) and expand your Pod.
    2. Click the **Start** button (play icon).
  </Tab>

  <Tab title="CLI">
    ```sh theme={null}
    runpodctl pod start $RUNPOD_POD_ID
    ```
  </Tab>

  <Tab title="REST API">
    ```bash theme={null}
    curl --request POST \
      --url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID/start" \
      --header 'Authorization: Bearer RUNPOD_API_KEY'
    ```
  </Tab>
</Tabs>

## Update a Pod

Modify an existing Pod's configuration, such as storage size, image, ports, or environment variables.

<Warning>
  Editing a running Pod resets it completely, erasing all data not stored in `/workspace` or a network volume.
</Warning>

<Tabs>
  <Tab title="Web">
    1. Open the [Pods page](https://www.console.runpod.io/pods).
    2. Click the three-dot menu next to the Pod you want to update.
    3. Click **Edit Pod** and modify your configuration.
    4. Click **Save** to apply changes.
  </Tab>

  <Tab title="REST API">
    ```bash theme={null}
    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](/api-reference/pods/PATCH/pods/podId) for all editable fields.
  </Tab>
</Tabs>

## Terminate a Pod

<Danger>
  Terminating permanently deletes all data not stored in a [network volume](/storage/network-volumes). Export important data first.
</Danger>

<Tabs>
  <Tab title="Web">
    1. Open the [Pods page](https://www.console.runpod.io/pods) and expand your Pod.
    2. Stop the Pod if running, then click **Terminate** (trash icon) and confirm.
  </Tab>

  <Tab title="CLI">
    ```sh theme={null}
    runpodctl pod delete $RUNPOD_POD_ID
    ```
  </Tab>

  <Tab title="REST API">
    ```bash theme={null}
    curl --request DELETE \
      --url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID" \
      --header 'Authorization: Bearer RUNPOD_API_KEY'
    ```
  </Tab>
</Tabs>

## 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](https://www.console.runpod.io/pods) by expanding your Pod and clicking **Logs**.

## Troubleshooting

| Issue                          | Solution                                                                                          |
| ------------------------------ | ------------------------------------------------------------------------------------------------- |
| **Zero GPUs on restart**       | See [Zero GPU Pods](/pods/troubleshooting/zero-gpus)                                              |
| **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](/pods/templates/overview) with your dependencies baked in. |

Need help? [Contact support](https://www.runpod.io/contact).
