Docker attach documentation didn't make sense to me

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
This commit is contained in:
Sven Dowideit 2015-02-02 22:48:12 +10:00 committed by Tibor Vass
parent 130c0bf094
commit 89e02d9d88
1 changed files with 43 additions and 19 deletions

View File

@ -426,29 +426,24 @@ Docker supports softlinks for the Docker data directory
--no-stdin=false Do not attach STDIN
--sig-proxy=true Proxy all received signals to the process
The `attach` command lets you view or interact with any running container's
primary process (`pid 1`).
The `docker attach` command allows you to attach to a running container using
the container's ID or name, either to view its ongoing output or to control it
interactively. You can attach to the same contained process multiple times
simultaneously, screen sharing style, or quickly view the progress of your
daemonized process.
You can attach to the same contained process multiple times simultaneously, screen
sharing style, or quickly view the progress of your daemonized process.
You can detach from the container (and leave it running) with `CTRL-p CTRL-q`
(for a quiet exit) or `CTRL-c` which will send a `SIGKILL` to the container.
When you are attached to a container, and exit its main process, the process's
exit code will be returned to the client.
> **Note:** This command is not for running a new process in a container.
> See: [`docker exec`](#exec).
You can detach from the container again (and leave it running) with
`CTRL-p CTRL-q` (for a quiet exit), or `CTRL-c` which will send a
SIGKILL to the container, or `CTRL-\` to get a stacktrace of the
Docker client when it quits. When you detach from the container's
process the exit code will be returned to the client.
To stop a container, use `docker stop`.
To kill the container, use `docker kill`.
It is forbidden to redirect the standard input of a `docker attach` command while
attaching to a tty-enabled container (i.e.: launched with `-t`).
#### Examples
$ ID=$(sudo docker run -d ubuntu /usr/bin/top -b)
$ sudo docker attach $ID
$ sudo docker run -d --name topdemo ubuntu /usr/bin/top -b)
$ sudo docker attach topdemo
top - 02:05:52 up 3:05, 0 users, load average: 0.01, 0.02, 0.05
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
@ -477,7 +472,23 @@ To kill the container, use `docker kill`.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top
^C$
$ sudo docker stop $ID
$ echo $?
0
$ docker ps -a | grep topdemo
7998ac8581f9 ubuntu:14.04 "/usr/bin/top -b" 38 seconds ago Exited (0) 21 seconds ago topdemo
And in this second example, you can see the exit code returned by the `bash` process
is returned by the `docker attach` command to its caller too:
$ sudo docker run --name test -d -it debian
275c44472aebd77c926d4527885bb09f2f6db21d878c75f0a1c212c03d3bcfab
$ sudo docker attach test
$$ exit 13
exit
$ echo $?
13
$ sudo docker ps -a | grep test
275c44472aeb debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test
## build
@ -1651,6 +1662,19 @@ and linking containers.
#### Examples
$ sudo docker run --name test -it debian
$$ exit 13
exit
$ echo $?
13
$ sudo docker ps -a | grep test
275c44472aeb debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test
In this example, we are running `bash` interactively in the `debian:latest` image, and giving
the container the name `test`. We then quit `bash` by running `exit 13`, which means `bash`
will have an exit code of `13`. This is then passed on to the caller of `docker run`, and
is recorded in the `test` container metadata.
$ sudo docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"
This will create a container and print `test` to the console. The `cidfile`