Skip to main content
6 min read

How to Enter a Docker Container Already Running with a New TTY

How to Enter a Docker Container Already Running with a New TTY

TLDR

To enter a running Docker container with a new TTY session, use the docker exec command with the -it flags. This allows you to interact with the container's shell for debugging or administrative tasks.


When working with Docker, you may need to interact with a running container to debug issues, inspect files, or perform administrative tasks. This guide will show you how to attach to a running container with a new TTY session.

Prerequisites

Before proceeding, make sure you have:

  • Docker installed on your system.
  • A running Docker container you want to access.
  • Appropriate permissions to interact with Docker.

Step 1: List Running Containers

To identify the container you want to access, list all running containers using the following command:

docker ps

This will display a list of running containers, including their IDs, names, and other details. For example:

CONTAINER ID   IMAGE          COMMAND                  CREATED        STATUS       PORTS                    NAMES
abc123         nginx:latest   "nginx -g 'daemon of…"   2 hours ago   Up 2 hours   0.0.0.0:8080->80/tcp     my-nginx

Note the CONTAINER ID or NAMES of the container you want to access.

Step 2: Attach to the Container with a New TTY

To open a new TTY session in the running container, use the docker exec command with the -it flags:

docker exec -it <container-name-or-id> /bin/bash

Replace <container-name-or-id> with the CONTAINER ID or NAMES from the previous step. For example:

docker exec -it my-nginx /bin/bash

This command starts a new interactive shell session (/bin/bash) inside the container.

Example Output

root@abc123:/#

You are now inside the container and can run commands as if you were logged into a separate machine.

Step 3: Use an Alternative Shell (if Necessary)

Not all containers include /bin/bash. If the container uses a minimal base image, you may need to use /bin/sh instead:

docker exec -it <container-name-or-id> /bin/sh

For example:

docker exec -it my-nginx /bin/sh

Step 4: Exit the Container

To exit the container's shell session, type:

exit

This will close the TTY session and return you to your host machine's terminal.

Additional Tips

  • Inspect Container Logs: Use docker logs <container-name-or-id> to view logs if you don't need an interactive session.

  • Attach vs. Exec: The docker attach command connects to the container's main process, while docker exec starts a new process inside the container.

  • Use Docker Compose: If you're using Docker Compose, you can access a container with:

    docker-compose exec <service-name> /bin/bash
    

By following these steps, you can easily interact with running Docker containers for debugging or administrative purposes.

Run the commands from this article in the browser. Nothing to install.

Published: 2024-11-30|Last updated: 2025-11-23T09:00:00Z

Found an issue?

Also worth your time on this topic