---
name: "runc-run"
section: "8"
platform: "linux"
package: "runc"
version: "1.5.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/runc-run"
---

# runc-run(8)

create and start a container

## NAME

**runc-run** - create and start a container

## SYNOPSIS

**runc run** \[*option* ...\] *container-id*

## DESCRIPTION

The **run** command creates an instance of a container from a bundle, and starts it.  You can think of **run** as a shortcut for **create** followed by **start**.

## OPTIONS

- **--bundle**\|**-b** *path*

  Path to the root of the bundle directory. Default is current directory.

- **--console-socket** *path*

  Path to an **AF\_UNIX**  socket which will receive a file descriptor referencing the master end of the console's pseudoterminal.  See docs/terminals ⟨https://github.com/opencontainers/runc/blob/master/docs/terminals.md⟩.

- **--detach**\|**-d**

  Detach from the container's process.

- **--pid-file** *path*

  Specify the file to write the initial container process' PID to.

- **--no-subreaper**

  Disable the use of the subreaper used to reap reparented processes.

- **--no-pivot**

  Do not use pivot root to jail process inside rootfs. This should not be used except in exceptional circumstances, and may be unsafe from the security standpoint.

- **--no-new-keyring**

  Do not create a new session keyring for the container. This will cause the container to inherit the calling processes session key.

- **--preserve-fds** *N*

  Pass *N* additional file descriptors to the container (**stdio** + **$LISTEN\_FDS** + *N* in total). Default is **0**.

- **--keep**

  Keep container's state directory and cgroup. This can be helpful if a user wants to check the state (e.g. of cgroup controllers) after the container has exited. If this option is used, a manual **runc delete** is needed afterwards to clean an exited container's artefacts.

## SEE ALSO

[**runc**(8)](/runc/8.md).
