Bird
Raised Fist0
Dockerdevops~5 mins

Running containers in detached mode in Docker - Commands & Configuration

Choose your learning style10 modes available
Introduction
By default docker run attaches your terminal to the container — when you close the terminal the container stops. Detached mode runs the container in the background so it keeps running independently of your terminal session.
When you start a web server or database container that should keep running after you close your terminal.
When you deploy multiple containers in a script and don't want to wait for each one interactively.
When you run a container on a remote server over SSH and want it to keep running after disconnecting.
When you want to start a container and immediately check its logs or status without being attached.
When you run containers as part of a CI/CD pipeline that needs to continue after launch.
Commands
Starts an nginx container in detached mode. The terminal immediately returns the container ID and the container runs in the background.
Terminal
docker run -d nginx
Expected OutputExpected
d4e5f6a7b8c9012def1234567890abcdef1234567890abcdef1234567890abcd
→
-d - Detaches the container from the terminal — runs in background
Lists all running containers to confirm the detached nginx container is active.
Terminal
docker ps
Expected OutputExpected
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4e5f6a7b8c9 nginx "/docker-entrypoint.…" 5 seconds ago Up 4 seconds 80/tcp relaxed_jones
Fetches the logs of the detached container to check what it is doing without being attached to it.
Terminal
docker logs relaxed_jones
Expected OutputExpected
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Stops the detached container gracefully when you no longer need it running.
Terminal
docker stop relaxed_jones
Expected OutputExpected
relaxed_jones
Key Concept

If you remember nothing else from this pattern, remember: -d detaches the container from your terminal so it keeps running in the background — use 'docker logs' to see what it is doing.

Common Mistakes
Running a container without -d and closing the terminal expecting it to keep running
The container stops when the terminal closes because it is attached to your shell session.
Always add -d when you want the container to run independently of your terminal.
Not knowing how to check a detached container's output
You lose visibility into what the container is doing since it has no attached terminal.
Use 'docker logs container_name' to see output, or 'docker logs -f' to follow live logs.
Confusing -d with --rm
--rm removes the container after it exits; -d just detaches it. Using both removes it on stop.
Use -d alone for persistent containers. Add --rm only for temporary one-off containers.
Summary
Use -d to run a container in the background, detached from your terminal session.
Use 'docker ps' to confirm the detached container is running and get its name or ID.
Use 'docker logs container_name' to view output from a detached container.

Practice

(1/5)
1. What does running a Docker container with the -d option do?
easy
A. Runs the container in detached mode, in the background
B. Runs the container interactively with a terminal
C. Removes the container after it stops
D. Builds a new Docker image from a Dockerfile

Solution

  1. Step 1: Understand the -d option meaning

    The -d flag tells Docker to run the container in detached mode, meaning it runs in the background.
  2. Step 2: Compare with other options

    Other options like interactive mode (-it) keep the container attached to the terminal, which is different from detached mode.
  3. Final Answer:

    Runs the container in detached mode, in the background -> Option A
  4. Quick Check:

    Detached mode = background run [OK]
Hint: Remember: -d means detach and run in background [OK]
Common Mistakes:
  • Confusing -d with -it for interactive mode
  • Thinking -d removes the container
  • Mixing up build and run commands
2. Which of the following is the correct syntax to run a container named myapp in detached mode using the image nginx?
easy
A. docker run nginx -d --name myapp
B. docker run -d --name myapp nginx
C. docker run --detach myapp nginx
D. docker run --name myapp -it nginx

Solution

  1. Step 1: Identify correct order and flags

    The correct syntax places options before the image name. The -d flag enables detached mode, and --name myapp names the container.
  2. Step 2: Validate each option

    docker run -d --name myapp nginx correctly uses docker run -d --name myapp nginx. docker run --detach myapp nginx misplaces arguments, docker run nginx -d --name myapp places flags after image, and docker run --name myapp -it nginx uses interactive mode instead of detached.
  3. Final Answer:

    docker run -d --name myapp nginx -> Option B
  4. Quick Check:

    Options before image, -d for detached [OK]
Hint: Put all flags before the image name in docker run [OK]
Common Mistakes:
  • Placing flags after the image name
  • Using -it instead of -d for detached mode
  • Misusing --detach instead of -d
3. What will be the output of the command docker ps after running docker run -d nginx?
medium
A. Shows the logs of the nginx container
B. Shows no containers because detached mode hides them
C. Shows an error because -d is not valid with nginx
D. Shows the running nginx container with its container ID and status

Solution

  1. Step 1: Understand docker run -d nginx

    This command runs the nginx container in detached mode, so it runs in the background.
  2. Step 2: Understand docker ps output

    The docker ps command lists all running containers, including those running detached. It will show the nginx container with its ID, image, and status.
  3. Final Answer:

    Shows the running nginx container with its container ID and status -> Option D
  4. Quick Check:

    docker ps lists running containers including detached [OK]
Hint: docker ps always lists running containers, detached or not [OK]
Common Mistakes:
  • Thinking detached containers are hidden from docker ps
  • Confusing docker ps with docker logs
  • Assuming -d causes errors with nginx image
4. You ran docker run -d nginx but the container stopped immediately. What is the most likely reason?
medium
A. The -d flag is invalid and caused the container to stop
B. You forgot to add the -it flag for interactive mode
C. The nginx container exited because it has no foreground process
D. Docker daemon is not running

Solution

  1. Step 1: Understand container lifecycle with detached mode

    Detached mode runs containers in background, but if the main process exits immediately, the container stops.
  2. Step 2: Analyze nginx container behavior

    Some nginx images may exit if no foreground process runs. This causes the container to stop right after starting.
  3. Final Answer:

    The nginx container exited because it has no foreground process -> Option C
  4. Quick Check:

    Container stops if main process exits immediately [OK]
Hint: Detached mode won't keep container alive if main process ends [OK]
Common Mistakes:
  • Assuming -d flag causes errors
  • Confusing interactive mode with container lifecycle
  • Not checking if Docker daemon is running
5. You want to run a container in detached mode and later check its logs. Which sequence of commands is correct?
hard
A. docker run -d --name myapp nginx; docker logs myapp
B. docker run --name myapp nginx -d; docker stop myapp
C. docker run -it --name myapp nginx; docker logs myapp
D. docker run -d nginx; docker attach myapp

Solution

  1. Step 1: Run container in detached mode with a name

    Use docker run -d --name myapp nginx to start the container in background with a name for easy reference.
  2. Step 2: Check logs of the running container

    Use docker logs myapp to view the logs of the named container without attaching to it.
  3. Final Answer:

    docker run -d --name myapp nginx; docker logs myapp -> Option A
  4. Quick Check:

    Detached run + named container + logs command [OK]
Hint: Name containers to easily check logs after detached run [OK]
Common Mistakes:
  • Using -it instead of -d for detached mode
  • Trying to attach instead of using logs to view output
  • Placing -d after image name
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard