Skip to main content

Common Docker Commands

Basic Docker Commands

1. List Docker images

docker images

2. List running containers

docker ps

3. List all containers (including stopped ones)

docker ps -a

4. Start a container

docker start <container_id_or_name>

5. Stop a container

docker stop <container_id_or_name>

6. Remove a container

docker rm <container_id_or_name>

7. Remove an image

docker rmi <image_id_or_name>

8. Run a new container

docker run <image_name>

To run in detached mode

docker run -d <image_name>

Connecting host ports to containers.

docker run -p <host-port>:<container-port> <image>

9. Run a container with an interactive shell

docker run -it <image_name> /bin/bash

10. Stop all running containers

docker stop $(docker ps -q)

Building and Managing Images

1. Build an image from a Dockerfile

docker build -t <image_name> .

2. Tag an image

docker tag <image_id_or_name> <new_image_name:tag>

3. Push an image to a repository

docker push <image_name:tag>

4. Pull an image from a repository

docker pull <image_name:tag>

Working with Volumes and Networks

1. Create a volume

docker volume create <volume_name>

2. List all volumes

docker volume ls

3. Remove a volume

docker volume rm <volume_name>

4. Create a network

docker network create <network_name>

5. List all networks

docker network ls

6. Remove a network

docker network rm <network_name>

Inspecting Containers and Images

1. Inspect a container

docker inspect <container_id_or_name>

2. Inspect an image

docker inspect <image_id_or_name>

3. View container logs

docker logs <container_id_or_name>

4. Display resource usage statistics

docker stats

5. Access a running container's shell

docker exec -it <container_id_or_name> /bin/bash

The -it flag on the docker exec command functions to allow interactive interaction with the container terminal. Here is an explanation of each flag:

  • -i (interactive): Ensures the input session remains open, so that we can interact with the container through the given commands.
  • -t (tty): Allocates a pseudo terminal (TTY) that creates an interactive terminal like the one we usually use, making it easier to run commands in text mode.

The -it combination is very useful for entering a shell inside a container and running commands directly

If you don't want any interaction inside the container (hit and run), you can ignore the -it flag

docker exec <container_id_or_name> <some command in container>

Docker Compose Commands

1. Start services in the background

docker-compose up -d

2. Stop services

docker-compose down

3. Build or rebuild services

docker-compose build

4. View logs of services

docker-compose logs

5. List all services

docker-compose ps