docker exec — run a command inside a running container

# 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

You need to inspect files, run a migration, or debug a running container.

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