📖 Scenario: You are managing Docker containers on your local machine. Sometimes you need to connect to a running container to see what is happening inside or to interact with it directly.
🎯 Goal: Learn how to list running Docker containers and attach your terminal to one of them to interact with its process.
📋 What You'll Learn
List running Docker containers using the docker ps command
Identify the container ID of a running container
Attach to a running container using docker attach <container_id>
Detach safely from the container without stopping it
💡 Why This Matters
🌍 Real World
Developers and system administrators often need to connect to running containers to debug or interact with applications directly.
💼 Career
Knowing how to attach and detach from containers is a basic skill for managing Docker environments in DevOps roles.
Progress0 / 4 steps
1
List running Docker containers
Run the command docker ps to list all running Docker containers on your system.
Docker
Hint
Use docker ps to see all containers that are currently running.
2
Identify the container ID
From the output of docker ps, copy the exact container ID of the first container listed.
Docker
Hint
Use docker ps -q to get only container IDs, then pick the first one.
3
Attach to the running container
Use the command docker attach $CONTAINER_ID to connect your terminal to the running container identified by $CONTAINER_ID.
Docker
Hint
Use docker attach followed by the container ID variable to connect.
4
Detach safely from the container
After attaching, detach from the container safely by pressing Ctrl + P then Ctrl + Q. Then run echo Detached to confirm you have detached.
Docker
Hint
Detaching requires keyboard keys, so just run echo Detached after detaching to confirm.
Practice
(1/5)
1. What does the docker attach command do?
easy
A. Connects your terminal to a running container's console output
B. Stops a running container immediately
C. Creates a new container from an image
D. Lists all running containers
Solution
Step 1: Understand the purpose of docker attach
This command connects your terminal to the standard input, output, and error streams of a running container.
Step 2: Compare with other commands
Stopping containers is done with docker stop, creating containers with docker run, and listing containers with docker ps. None of these attach your terminal.
Final Answer:
Connects your terminal to a running container's console output -> Option A
Quick Check:
Attach = Connect terminal [OK]
Hint: Attach means connect terminal to container output [OK]
Common Mistakes:
Confusing attach with stop or run commands
Thinking attach creates or lists containers
Assuming attach stops the container
2. Which of the following is the correct syntax to attach to a running container named webapp?
easy
A. docker attach --connect webapp
B. docker attach -r webapp
C. docker attach --start webapp
D. docker attach webapp
Solution
Step 1: Recall the basic syntax of docker attach
The command is simply docker attach CONTAINER_NAME_OR_ID without extra flags.
Step 2: Evaluate the options
Options B, C, and D use invalid flags that do not exist for docker attach.
Final Answer:
docker attach webapp -> Option D
Quick Check:
Correct syntax = docker attach CONTAINER [OK]
Hint: Use just 'docker attach container_name' without extra flags [OK]
Common Mistakes:
Adding unsupported flags to docker attach
Using docker attach with options like --start or --connect
Confusing attach syntax with docker run options
3. Given a running container with ID abc123, what will be the output after running docker attach abc123 if the container is running a bash shell?
medium
A. The container will stop immediately
B. An error message saying container not found
C. You will see the bash shell prompt and can interact with it
D. The container logs will be printed once and then exit
Solution
Step 1: Understand what docker attach does with interactive shells
Attaching to a container running bash connects your terminal to its shell prompt, allowing interaction.
Step 2: Analyze other options
The container does not stop on attach, no error occurs if the container is running, and logs are streamed continuously, not printed once.
Final Answer:
You will see the bash shell prompt and can interact with it -> Option C
Quick Check:
Attach to bash = interactive shell prompt [OK]
Hint: Attach to bash container = interactive prompt appears [OK]
Common Mistakes:
Expecting container to stop on attach
Thinking attach prints logs once then exits
Assuming attach fails if container is running
4. You attached to a container using docker attach mycontainer but now your terminal is frozen and you can't type commands. What is the correct way to detach without stopping the container?
medium
A. Press Ctrl+P then Ctrl+Q
B. Press Ctrl+C
C. Close the terminal window
D. Run docker detach mycontainer
Solution
Step 1: Recall the detach key sequence for docker attach
To safely detach without stopping the container, press Ctrl+P followed by Ctrl+Q.
Step 2: Understand why other options are wrong
Ctrl+C stops the container, closing terminal kills the session abruptly, and docker detach is not a valid command.
Final Answer:
Press Ctrl+P then Ctrl+Q -> Option A
Quick Check:
Detach keys = Ctrl+P Ctrl+Q [OK]
Hint: Detach safely with Ctrl+P then Ctrl+Q [OK]
Common Mistakes:
Using Ctrl+C which stops the container
Closing terminal which kills session abruptly
Trying a non-existent docker detach command
5. You want to attach to a running container named dbserver to check its logs interactively, but you also want to keep the container running after detaching. Which sequence of commands and actions will achieve this?
hard
A. Run docker exec -it dbserver bash, then exit the shell to detach
B. Run docker attach dbserver, view logs, then press Ctrl+P then Ctrl+Q to detach safely
C. Run docker attach dbserver, then press Ctrl+C to detach
D. Run docker logs -f dbserver, then press Ctrl+C to stop following logs
Solution
Step 1: Understand the difference between attach and logs
docker attach connects to the container's main process streams, allowing interactive viewing. docker logs -f follows logs but is read-only and Ctrl+C stops the command.
Step 2: Know how to detach safely
Using Ctrl+P then Ctrl+Q detaches without stopping the container. Ctrl+C stops the container or command.
Step 3: Evaluate other options
docker exec runs a new shell inside the container but does not attach to main process logs. Exiting shell detaches but is different from attach.
Final Answer:
Run docker attach dbserver, view logs, then press Ctrl+P then Ctrl+Q to detach safely -> Option B
Quick Check:
Attach + Ctrl+P Ctrl+Q = safe detach [OK]
Hint: Attach then Ctrl+P Ctrl+Q to keep container running [OK]
Common Mistakes:
Using Ctrl+C which stops container or command
Confusing docker logs -f with docker attach
Using docker exec instead of attach for logs
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.