Skip to content

Commit a18dad3

Browse files
authored
Merge pull request #4755 from dvdksn/cli-reference-canonical
docs: rename reference docs to "object_action"
2 parents ca58fdf + 37f5515 commit a18dad3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+5527
-5945
lines changed
Lines changed: 6 additions & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# attach
1+
# docker attach
22

33
<!---MARKER_GEN_START-->
44
Attach local standard input, output, and error streams to a running container
@@ -9,159 +9,12 @@ Attach local standard input, output, and error streams to a running container
99

1010
### Options
1111

12-
| Name | Type | Default | Description |
13-
|:--------------------------------|:---------|:--------|:----------------------------------------------------|
14-
| [`--detach-keys`](#detach-keys) | `string` | | Override the key sequence for detaching a container |
15-
| `--no-stdin` | | | Do not attach STDIN |
16-
| `--sig-proxy` | | | Proxy all received signals to the process |
12+
| Name | Type | Default | Description |
13+
|:----------------|:---------|:--------|:----------------------------------------------------|
14+
| `--detach-keys` | `string` | | Override the key sequence for detaching a container |
15+
| `--no-stdin` | | | Do not attach STDIN |
16+
| `--sig-proxy` | | | Proxy all received signals to the process |
1717

1818

1919
<!---MARKER_GEN_END-->
2020

21-
## Description
22-
23-
Use `docker attach` to attach your terminal's standard input, output, and error
24-
(or any combination of the three) to a running container using the container's
25-
ID or name. This lets you view its output or control it interactively, as
26-
though the commands were running directly in your terminal.
27-
28-
> **Note**
29-
>
30-
> The `attach` command displays the output of the container's `ENTRYPOINT` and
31-
> `CMD` process. This can appear as if the attach command is hung when in fact
32-
> the process may simply not be writing any output at that time.
33-
34-
You can attach to the same contained process multiple times simultaneously,
35-
from different sessions on the Docker host.
36-
37-
To stop a container, use `CTRL-c`. This key sequence sends `SIGKILL` to the
38-
container. If `--sig-proxy` is true (the default),`CTRL-c` sends a `SIGINT` to
39-
the container. If the container was run with `-i` and `-t`, you can detach from
40-
a container and leave it running using the `CTRL-p CTRL-q` key sequence.
41-
42-
> **Note**
43-
>
44-
> A process running as PID 1 inside a container is treated specially by
45-
> Linux: it ignores any signal with the default action. So, the process
46-
> doesn't terminate on `SIGINT` or `SIGTERM` unless it's coded to do so.
47-
48-
You can't redirect the standard input of a `docker attach` command while
49-
attaching to a TTY-enabled container (using the `-i` and `-t` options).
50-
51-
While a client is connected to container's `stdio` using `docker attach`,
52-
Docker uses a ~1MB memory buffer to maximize the throughput of the application.
53-
Once this buffer is full, the speed of the API connection is affected, and so
54-
this impacts the output process' writing speed. This is similar to other
55-
applications like SSH. Because of this, it isn't recommended to run
56-
performance-critical applications that generate a lot of output in the
57-
foreground over a slow client connection. Instead, use the `docker logs`
58-
command to get access to the logs.
59-
60-
## Examples
61-
62-
### Attach to and detach from a running container
63-
64-
The following example starts an Alpine container running `top` in detached mode,
65-
then attaches to the container;
66-
67-
```console
68-
$ docker run -d --name topdemo alpine top -b
69-
70-
$ docker attach topdemo
71-
72-
Mem: 2395856K used, 5638884K free, 2328K shrd, 61904K buff, 1524264K cached
73-
CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
74-
Load average: 0.15 0.06 0.01 1/567 6
75-
PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
76-
1 0 root R 1700 0% 3 0% top -b
77-
```
78-
79-
As the container was started without the `-i`, and `-t` options, signals are
80-
forwarded to the attached process, which means that the default `CTRL-p CTRL-q`
81-
detach key sequence produces no effect, but pressing `CTRL-c` terminates the
82-
container:
83-
84-
```console
85-
<...>
86-
PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
87-
1 0 root R 1700 0% 7 0% top -b
88-
^P^Q
89-
^C
90-
91-
$ docker ps -a --filter name=topdemo
92-
93-
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94-
96254a235bd6 alpine "top -b" 44 seconds ago Exited (130) 8 seconds ago topdemo
95-
```
96-
97-
Repeating the example above, but this time with the `-i` and `-t` options set;
98-
99-
```console
100-
$ docker run -dit --name topdemo2 ubuntu:22.04 /usr/bin/top -b
101-
```
102-
103-
Now, when attaching to the container, and pressing the `CTRL-p CTRL-q` ("read
104-
escape sequence"), the Docker CLI is handling the detach sequence, and the
105-
`attach` command is detached from the container. Checking the container's status
106-
with `docker ps` shows that the container is still running in the background:
107-
108-
```console
109-
$ docker attach topdemo2
110-
111-
Mem: 2405344K used, 5629396K free, 2512K shrd, 65100K buff, 1524952K cached
112-
CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
113-
Load average: 0.12 0.12 0.05 1/594 6
114-
PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
115-
1 0 root R 1700 0% 3 0% top -b
116-
read escape sequence
117-
118-
$ docker ps -a --filter name=topdemo2
119-
120-
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
121-
fde88b83c2c2 alpine "top -b" 22 seconds ago Up 21 seconds topdemo2
122-
```
123-
124-
### Get the exit code of the container's command
125-
126-
And in this second example, you can see the exit code returned by the `bash`
127-
process is returned by the `docker attach` command to its caller too:
128-
129-
```console
130-
$ docker run --name test -dit alpine
131-
275c44472aebd77c926d4527885bb09f2f6db21d878c75f0a1c212c03d3bcfab
132-
133-
$ docker attach test
134-
/# exit 13
135-
136-
$ echo $?
137-
13
138-
139-
$ docker ps -a --filter name=test
140-
141-
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
142-
a2fe3fd886db alpine "/bin/sh" About a minute ago Exited (13) 40 seconds ago test
143-
```
144-
145-
### <a name="detach-keys"></a> Override the detach sequence (--detach-keys)
146-
147-
Use the `--detach-keys` option to override the Docker key sequence for detach.
148-
This is useful if the Docker default sequence conflicts with key sequence you
149-
use for other applications. There are two ways to define your own detach key
150-
sequence, as a per-container override or as a configuration property on your
151-
entire configuration.
152-
153-
To override the sequence for an individual container, use the
154-
`--detach-keys="<sequence>"` flag with the `docker attach` command. The format of
155-
the `<sequence>` is either a letter [a-Z], or the `ctrl-` combined with any of
156-
the following:
157-
158-
* `a-z` (a single lowercase alpha character )
159-
* `@` (at sign)
160-
* `[` (left bracket)
161-
* `\\` (two backward slashes)
162-
* `_` (underscore)
163-
* `^` (caret)
164-
165-
These `a`, `ctrl-a`, `X`, or `ctrl-\\` values are all examples of valid key
166-
sequences. To configure a different configuration default key sequence for all
167-
containers, see [**Configuration file** section](cli.md#configuration-files).

0 commit comments

Comments
 (0)