Bobcares

Docker container: Attach and Detach Options

by | Jan 18, 2023

Here is an introduction to Docker container Attach and Detach options. Our Docker Support team is here to lend a hand with your queries and issues.

An Introduction to Docker container Attach and Detach

Detached indicates that the container will run in the background. In other words, it will not be attached to any input or output stream. According to our experts, running detached containers is great for programs that sit quietly in the background.

Docker container Attach and Detach

In order to work with a Docker container, we often have to run it in an interactive mode. This involves attaching the standard input, output or error streams of the terminal to the container.

In this article, we are going to take a look at how we can connect to our container as well as detach from a session without stopping the container.

Our experts demonstrate how to run a container in attached or Detached mode:

  • Default Mode

    According to our experts, Docker runs a container in the foreground by default. In other words, we cannot return to out shell prompt unless the process is over. For instance:

    $ docker run --name test_redis -p 6379:6379 redis

    This command ensures the standard output and the standard error streams are linked with the terminal. This way, we will be able to see the console output of the container in the terminal.

    If we want to see only error messages from the container, we can use this command:

    $ docker run --name test_redis -a STDERR -p 6379:6379 redis

  • Interactive Mode

    We can easily start a container in interactive mode by combining -i and -t options as seen here:

    $ docker run -it ubuntu /bin/bash

    The -i option attaches the container’s bash shell’s standard input stream. Furthermore, the -t option allots a pseudo-terminal to the process. This allows us to communicate with the container from our terminal.

  • Detached Mode

    Similarly, we cab run a container in detached mode with the -d option as seen here:

    $ docker run -d --name test_redis -p 6379:6379 redis

    This command allows us to proceed with other tasks while the container is runnign in the background.

Additionally, the attach command helps us connect our terminal to a running container:

$ docker attach test_redis

However, detaching from the container depends on the running mode:

  • Default Mode

    We can easily end a session by pressing CTRL-c. However, if the container was launched with -it or -d option, this key command will stop the container and not disconnect from it. This leads to the SIGINT signal which kills the main process. Fortunately, we can override this with:

    $ docker run --name test_redis --sig-proxy=false -p 6379:6379 redis

    At this point, when we press CTRL-c, it will detach only the current session and keep the container running in the background.

  • Interactive Mode

    In this mode, we can easily use CTRL-p CTRL-q to end the session.

  • Background Mode

    In this mode, we have to override the –sig-proxy value when we attach the session:

    $ docker attach --sig-proxy=false test_redis Additionally, we can define a separate key as seen here:

    $ docker attach --detach-keys="ctrl-x" test_redis

    This enables us to easily detach the container and then return the prompt as soon as we press CTRL-x.

[Need assistance with a different issue? Our team is available 24/7.]

Conclusion

In conclusion, our Support Engineers gave us an introduction to Attach and Detach modes in Docker Containers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.