docker exec — run a command inside a running container
Quick Answer
# Open an interactive shell
docker exec -it <container-name-or-id> /bin/bash
# If bash is not available (Alpine-based images)
docker exec -it <container> /bin/sh
# Run a one-off command
docker exec my-container ls /app
Usage
You need to inspect files, run a migration, or debug a running container.
Other causes & fixes
Find the container name or ID
docker ps
# CONTAINER ID IMAGE STATUS NAMES
# d3f9a1b2c3d4 nginx Up 5m web
Run as a specific user
docker exec -it --user root my-container /bin/bash
docker exec -it --user 1000:1000 my-container /bin/sh
Set environment variables
docker exec -it -e DEBUG=true my-container /bin/bash
Exec into a container by partial ID
# You only need enough characters to be unique
docker exec -it d3f9 /bin/bash
Related