Bird
Raised Fist0
Dockerdevops~5 mins

Opening a shell in container in Docker - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What command lets you open an interactive shell inside a running Docker container?
Use docker exec -it <container_name_or_id> /bin/bash to open an interactive bash shell inside a running container.
Click to reveal answer
beginner
What does the -it option mean in docker exec -it?
-i means interactive mode to keep STDIN open, and -t allocates a pseudo-TTY so you get a terminal interface.
Click to reveal answer
beginner
How do you open a shell in a container that uses sh instead of bash?
Use docker exec -it <container> /bin/sh because some containers have only sh shell.
Click to reveal answer
intermediate
What is the difference between docker exec and docker attach?
docker exec runs a new command (like a shell) inside the container, while docker attach connects to the main process's input/output of the container.
Click to reveal answer
beginner
Why might you want to open a shell inside a running container?
To inspect the container's file system, debug running processes, or manually run commands inside the container environment.
Click to reveal answer
Which command opens an interactive bash shell inside a running Docker container named 'webapp'?
Adocker run -it webapp /bin/bash
Bdocker exec -it webapp /bin/bash
Cdocker start -it webapp /bin/bash
Ddocker attach webapp /bin/bash
What does the -t option do in the command docker exec -it?
ARuns the container in detached mode
BStops the container after command finishes
CSpecifies the target container
DAllocates a pseudo-TTY for terminal interface
If a container does not have bash installed, which shell is commonly available?
A/bin/sh
B/bin/zsh
C/bin/fish
D/bin/csh
Which command connects to the main process's input/output of a running container?
Adocker attach
Bdocker exec
Cdocker run
Ddocker shell
Why is opening a shell inside a container useful?
ATo permanently change container settings
BTo delete the container
CTo inspect and debug the container environment
DTo update Docker software
Explain how to open an interactive shell inside a running Docker container and why you might do this.
Think about the command and the purpose of opening a shell.
You got /3 concepts.
    Describe the difference between docker exec and docker attach commands.
    Consider how each command interacts with the container.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the command docker exec -it <container> /bin/bash?
      easy
      A. To stop a running container
      B. To start a new container from an image
      C. To open an interactive shell inside a running container
      D. To build a Docker image

      Solution

      1. Step 1: Understand the command components

        The command uses docker exec to run a command inside a running container. The -it flags make the session interactive and allocate a terminal.
      2. Step 2: Identify the command's effect

        Using /bin/bash opens a shell inside the container, allowing direct interaction.
      3. Final Answer:

        To open an interactive shell inside a running container -> Option C
      4. Quick Check:

        docker exec -it container /bin/bash = open shell [OK]
      Hint: Remember exec + -it + shell opens container shell [OK]
      Common Mistakes:
      • Confusing exec with docker run
      • Forgetting the -it flags for interactivity
      • Trying to open shell in a stopped container
      2. Which of the following is the correct syntax to open a shell inside a running Docker container named webapp?
      easy
      A. docker exec -it webapp /bin/sh
      B. docker start -it webapp /bin/sh
      C. docker run -it webapp /bin/sh
      D. docker exec webapp -it /bin/sh

      Solution

      1. Step 1: Recall the correct order of docker exec flags

        The -it flags must come immediately after docker exec and before the container name.
      2. Step 2: Check the command structure

        The correct syntax is docker exec -it <container> <shell>. docker exec -it webapp /bin/sh matches this exactly.
      3. Final Answer:

        docker exec -it webapp /bin/sh -> Option A
      4. Quick Check:

        Flags -it come before container name [OK]
      Hint: Flags -it always come right after exec command [OK]
      Common Mistakes:
      • Placing -it after container name
      • Using docker run instead of exec
      • Using docker start with shell command
      3. Given a running container named db, what will be the output of the command docker exec -it db /bin/false?
      medium
      A. The command exits immediately with no shell opened
      B. Error: container not found
      C. An interactive shell opens inside the container
      D. The container stops running

      Solution

      1. Step 1: Understand the command /bin/false

        The command /bin/false is a program that immediately exits with a failure status and does not open a shell.
      2. Step 2: Predict the command behavior inside the container

        Running docker exec -it db /bin/false will run /bin/false inside the container, which exits immediately without opening a shell.
      3. Final Answer:

        The command exits immediately with no shell opened -> Option A
      4. Quick Check:

        /bin/false exits immediately, no shell [OK]
      Hint: Commands like /bin/false exit immediately, no shell [OK]
      Common Mistakes:
      • Expecting a shell to open
      • Confusing container not found error
      • Thinking container stops after exec
      4. You try to open a shell inside a running container with docker exec -it mycontainer /bin/bash but get the error: OCI runtime exec failed: exec failed: container_linux.go:xxx: exec: "/bin/bash": stat /bin/bash: no such file or directory. What is the best way to fix this?
      medium
      A. Restart the Docker daemon
      B. Use /bin/sh instead of /bin/bash
      C. Rebuild the container image
      D. Stop and remove the container

      Solution

      1. Step 1: Analyze the error message

        The error says /bin/bash does not exist inside the container, so the shell is missing.
      2. Step 2: Choose an alternative shell

        Many containers have /bin/sh instead of /bin/bash. Using /bin/sh usually works.
      3. Final Answer:

        Use /bin/sh instead of /bin/bash -> Option B
      4. Quick Check:

        Use available shell like /bin/sh if /bin/bash missing [OK]
      Hint: Try /bin/sh if /bin/bash not found inside container [OK]
      Common Mistakes:
      • Restarting Docker daemon unnecessarily
      • Rebuilding image without checking shell availability
      • Removing container without trying alternative shells
      5. You want to open a shell inside a running container named app but it does not have /bin/bash or /bin/sh. Which command can you try to open a shell if ash is installed inside the container?
      hard
      A. docker exec -it app /bin/zsh
      B. docker exec -it app /bin/bash
      C. docker exec -it app /bin/sh
      D. docker exec -it app /bin/ash

      Solution

      1. Step 1: Identify available shells inside container

        If /bin/bash and /bin/sh are missing, but ash is installed, you can use /bin/ash to open a shell.
      2. Step 2: Use docker exec with the correct shell path

        The command docker exec -it app /bin/ash opens an interactive shell using ash inside the container.
      3. Final Answer:

        docker exec -it app /bin/ash -> Option D
      4. Quick Check:

        Use shell installed inside container, e.g. /bin/ash [OK]
      Hint: Try shells like /bin/ash if bash and sh missing [OK]
      Common Mistakes:
      • Assuming bash or sh always exist
      • Using wrong shell path
      • Not checking installed shells inside container
      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