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

# Manage Pods

> Learn how to create, start, stop, and terminate Pods using the Runpod console or CLI.

## Before you begin

If you want to manage Pods using the Runpod CLI, you'll need to [install Runpod CLI](/runpodctl/install-runpodctl), and set your [API key](/get-started/api-keys) in the configuration.

Run the following command, replacing `[RUNPOD_API_KEY]` with your API key:

```sh theme={"system"}
runpodctl config --apiKey [RUNPOD_API_KEY]
```

## Create a Pod

<Tabs>
  <Tab title="Web">
    To create a Pod using the Runpod console:

    1. Open the [Pods page](https://www.console.runpod.io/pods) in the Runpod console and click the **Deploy** button.
    2. (Optional) Specify a [network volume](/pods/storage/create-network-volumes) if you need to share data between multiple Pods, or to save data for later use.
    3. Select **GPU** or **CPU** using the buttons in the top-left corner of the window, and follow the configuration steps below.

    GPU configuration:

    1. Select a graphics card (e.g., A40, RTX 4090, H100 SXM).
    2. Give your Pod a name using the **Pod Name** field.
    3. (Optional) Choose a **Pod Template** such as **Runpod Pytorch 2.1** or **Runpod Stable Diffusion**.
    4. Specify your **GPU count** if you need multiple GPUs.
    5. Click **Deploy On-Demand** to deploy and start your Pod.

    CPU configuration:

    1. Select a **CPU type** (e.g., CPU3/CPU5, Compute Optimized, General Purpose, Memory-Optimized).
    2. Specify the number of CPUs and quantity of RAM for your Pod by selecting an **Instance Configuration**.
    3. Give your Pod a name using the **Pod Name** field.
    4. Click **Deploy On-Demand** to deploy and start your Pod.
  </Tab>

  <Tab title="Command line">
    To create a Pod using the CLI, use the `runpodctl create pods` command:

    ```sh theme={"system"}
    runpodctl create pods \
      --name hello-world \
      --gpuType "NVIDIA A40" \
      --imageName "runpod/pytorch:3.10-2.0.0-117" \
      --containerDiskSize 10 \
      --volumeSize 100 \
      --args "bash -c 'mkdir /testdir1 && /start.sh'"
    ```
  </Tab>
</Tabs>

### Custom templates

Runpod supports custom [Pod templates](/pods/templates/overview) that let you define your environment using a Dockerfile.

With custom templates, you can:

* Install specific dependencies and packages.
* Configure your development environment.
* Create [portable Docker images](/tutorials/introduction/containers/overview) that work consistently across deployments.
* Share environments with team members for collaborative work.

## Stop a Pod

<Tip>
  If your Pod has a [network volume](/pods/storage/create-network-volumes) attached, it cannot be stopped, only terminated. When you terminate the Pod, data in the `/workspace` directory will be preserved in the network volume, and you can regain access by deploying a new Pod with the same network volume attached.
</Tip>

When a Pod is stopped, data in the container volume is cleared, but data in the `/workspace` directory is preserved. To learn more about how Pod storage works, see [Storage overview](/pods/storage/types).

By stopping a Pod you are effectively releasing the GPU on the machine, and you may be reallocated 0 GPUs when you start the Pod again. For more info, see the [FAQ](/references/faq#why-do-i-have-zero-gpus-assigned-to-my-pod%3F).

<Warning>
  After a Pod is stopped, you will still be charged for its [disk volume](/pods/storage/types#disk-volume) storage. If you don't need to retain your Pod environment, you should terminate it completely.
</Warning>

<Tabs>
  <Tab title="Web">
    To stop a Pod:

    1. Open the [Pods page](https://www.console.runpod.io/pods).
    2. Find the Pod you want to stop and expand it.
    3. Click the **Stop button** (square icon).
    4. Confirm by clicking the **Stop Pod** button.
  </Tab>

  <Tab title="Command line">
    To stop a Pod, enter the following command.

    ```sh theme={"system"}
    runpodctl stop pod $RUNPOD_POD_ID
    ```
  </Tab>
</Tabs>

### Stop a Pod after a period of time

You can also stop a Pod after a specified period of time. The examples below show how to use the CLI or [web terminal](/pods/connect-to-a-pod#web-terminal) to schedule a Pod to stop after 2 hours of runtime.

<Tabs>
  <Tab title="Command line">
    Use the following command to stop a Pod after 2 hours:

    ```sh theme={"system"}
    sleep 2h; runpodctl stop pod $RUNPOD_POD_ID &
    ```

    This command uses sleep to wait for 2 hours before executing the `runpodctl stop pod` command to stop the Pod. The `&` at the end runs the command in the background, allowing you to continue using the SSH session.
  </Tab>

  <Tab title="Web terminal">
    To stop a Pod after 2 hours using the web terminal, enter:

    ```sh theme={"system"}
    nohup bash -c "sleep 2h; runpodctl stop pod $RUNPOD_POD_ID" &
    ```

    `nohup` ensures the process continues running if you close the web terminal window.
  </Tab>
</Tabs>

## Start a Pod

Pods start as soon as they are created, but you can resume a Pod that has been stopped.

<Tabs>
  <Tab title="Web">
    To start a Pod:

    1. Open the [Pods page](https://www.console.runpod.io/pods).
    2. Find the Pod you want to start and expand it.
    3. Click the **Start** button (play icon).
  </Tab>

  <Tab title="Command line">
    To start a single Pod, enter the command `runpodctl start pod`. You can pass the environment variable `RUNPOD_POD_ID` to identify each Pod.

    ```sh theme={"system"}
    runpodctl start pod $RUNPOD_POD_ID
    ```
  </Tab>
</Tabs>

## Terminate a Pod

<Warning>
  Terminating a Pod permanently deletes all associated data that isn't stored in a [network volume](/pods/storage/create-network-volumes). Be sure to export or download any data that you'll need to access again.
</Warning>

<Tabs>
  <Tab title="Web">
    To terminate a Pod:

    1. Open the [Pods page](https://www.console.runpod.io/pods).
    2. Find the Pod you want to terminate and expand it.
    3. [Stop the Pod](#stop-a-pod) if it's running.
    4. Click the **Terminate** button (trash icon).
    5. Confirm by clicking the **Yes** button.
  </Tab>

  <Tab title="Command line">
    To remove a single Pod, enter the following command.

    ```sh theme={"system"}
    runpodctl remove pod $RUNPOD_POD_ID
    ```

    You can also remove Pods in bulk. For example, the following command terminates up to 40 Pods with the name `my-bulk-task`.

    ```sh theme={"system"}
    runpodctl remove pods my-bulk-task --podCount 40
    ```
  </Tab>
</Tabs>

## List Pods

You can find a list of all your Pods on the [Pods page](https://www.console.runpod.io/pods) of the web interface.

If you're using the CLI, use the following command to list your Pods:

```sh theme={"system"}
runpodctl get pod
```
