# docker attach

<!---MARKER_GEN_START-->
Attach local standard input, output, and error streams to a running container

### Aliases

`docker container attach`, `docker attach`

### Options

| Name            | Type     | Default | Description                                         |
|:----------------|:---------|:--------|:----------------------------------------------------|
| `--detach-keys` | `string` |         | Override the key sequence for detaching a container |
| `--no-stdin`    | `bool`   |         | Do not attach STDIN                                 |
| `--sig-proxy`   | `bool`   | `true`  | Proxy all received signals to the process           |


<!---MARKER_GEN_END-->

