0
0
DockerHow-ToBeginner · 3 min read

How to Use docker exec -it bash to Access Containers

Use docker exec -it <container_name_or_id> bash to open an interactive bash shell inside a running Docker container. The -i flag keeps the input open, and -t allocates a terminal, allowing you to interact with the container's shell.
📐

Syntax

The command docker exec -it <container> bash has three main parts:

  • docker exec: Runs a command inside a running container.
  • -i: Keeps STDIN open so you can type commands.
  • -t: Allocates a terminal so the shell works interactively.
  • <container>: The container's name or ID where you want to run the shell.
  • bash: The shell program to run inside the container.
bash
docker exec -it <container_name_or_id> bash
💻

Example

This example shows how to open a bash shell inside a running container named myapp. You can then run commands inside the container as if you were logged into it.

bash
docker exec -it myapp bash

# Inside the container shell, you can run commands like:
ls -l
exit
Output
root@container_id:/# ls -l total 0 -rw-r--r-- 1 root root 0 Apr 27 12:00 example.txt root@container_id:/# exit
⚠️

Common Pitfalls

Common mistakes when using docker exec -it bash include:

  • Trying to run it on a container that is not running. The container must be active.
  • Using bash when the container does not have bash installed. Some containers only have sh.
  • Not specifying the container name or ID correctly.

To fix the shell issue, try docker exec -it <container> sh instead.

bash
docker exec -it myapp bash
# Error: exec: "bash": executable file not found in $PATH

# Correct approach if bash is missing:
docker exec -it myapp sh
Output
exec: "bash": executable file not found in $PATH # or # Opens sh shell instead
📊

Quick Reference

OptionDescription
docker execRun a command in a running container
-iKeep STDIN open for interactive input
-tAllocate a pseudo-TTY (terminal)
bashRun bash shell inside the container
shRun sh shell if bash is not available

Key Takeaways

Use docker exec -it bash to open an interactive shell inside a running container.
The -i flag keeps input open; -t allocates a terminal for interaction.
If bash is missing, use sh instead to access the container shell.
Ensure the container is running before using docker exec.
Specify the correct container name or ID to avoid errors.