diff --git a/components/engine/commands.go b/components/engine/commands.go index 846a66c7a4..5d2ea1806c 100644 --- a/components/engine/commands.go +++ b/components/engine/commands.go @@ -1578,6 +1578,15 @@ func (cli *DockerCli) CmdAttach(args ...string) error { if err := cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), container.Config.Tty, in, cli.out, cli.err, nil); err != nil { return err } + + _, status, err := getExitCode(cli, cmd.Arg(0)) + if err != nil { + return err + } + if status != 0 { + return &utils.StatusError{Status: status} + } + return nil } diff --git a/components/engine/docs/sources/commandline/cli.rst b/components/engine/docs/sources/commandline/cli.rst index e35475ae96..247ed8faff 100644 --- a/components/engine/docs/sources/commandline/cli.rst +++ b/components/engine/docs/sources/commandline/cli.rst @@ -66,7 +66,8 @@ To run the daemon with debug output, use ``docker -d -D`` You can detach from the container again (and leave it running) with ``CTRL-c`` (for a quiet exit) or ``CTRL-\`` to get a stacktrace of -the Docker client when it quits. +the Docker client when it quits. When you detach from the container's +process the exit code will be retuned to the client. To stop a container, use ``docker stop``