---
title: "Essential Docker Commands: A Comprehensive Guide for DevOps Engineers"
source: "https://support.tools/essential-docker-commands-guide/"
published: 2025-03-15
categories: ["Docker","DevOps","Infrastructure"]
tags: ["Docker","DevOps","Containers","CLI","Infrastructure","Container Management"]
---


A comprehensive collection of essential Docker commands that every DevOps engineer should know, from basic container management to advanced debugging techniques.

# Essential Docker Commands Guide

## Container Management

### Listing Containers

1. **View Running Containers**
```bash
docker ps
```

2. **View All Containers (Including Stopped)**
```bash
docker ps -a
```

3. **Show Only Container IDs**
```bash
docker ps -q
```

### Container Operations

1. **Remove Containers**
```bash
# Remove a specific container
docker rm container_id

# Remove all stopped containers
docker rm $(docker ps -a -q)

# Force remove running containers
docker rm -f $(docker ps -q)
```

2. **Stop Containers**
```bash
# Stop a specific container
docker stop container_id

# Stop all running containers
docker stop $(docker ps -q)
```

## Image Management

### Basic Image Commands

1. **List Images**
```bash
# List all images
docker images

# List dangling images
docker images -f "dangling=true"
```

2. **Remove Images**
```bash
# Remove specific image
docker rmi image_id

# Remove all unused images
docker image prune -a

# Remove dangling images
docker image prune
```

### Advanced Image Operations

1. **Image History**
```bash
docker history image_name
```

2. **Save and Load Images**
```bash
# Save image to tar file
docker save image_name > image.tar

# Load image from tar file
docker load < image.tar
```

## Container Debugging

### Accessing Containers

1. **Execute Commands in Running Container**
```bash
# Start an interactive shell
docker exec -it container_id /bin/bash

# Run a specific command
docker exec container_id command
```

2. **View Container Logs**
```bash
# Follow log output
docker logs -f container_id

# Show last n lines
docker logs --tail 100 container_id

# Show timestamps
docker logs -t container_id
```

### Container Inspection

1. **Detailed Container Information**
```bash
docker inspect container_id
```

2. **Resource Usage Statistics**
```bash
docker stats container_id
```

## Network Management

### Basic Network Commands

1. **List Networks**
```bash
docker network ls
```

2. **Create Network**
```bash
docker network create network_name
```

3. **Connect Container to Network**
```bash
docker network connect network_name container_id
```

### Network Inspection

```bash
# Inspect network
docker network inspect network_name

# Show container's network settings
docker inspect container_id --format='{{json .NetworkSettings.Networks}}'
```

## Volume Management

### Basic Volume Operations

1. **Create and Manage Volumes**
```bash
# Create volume
docker volume create volume_name

# List volumes
docker volume ls

# Remove volume
docker volume rm volume_name
```

2. **Clean Up Volumes**
```bash
# Remove all unused volumes
docker volume prune
```

## System Maintenance

### System Commands

1. **System Information**
```bash
# Show Docker system info
docker info

# Show Docker disk usage
docker system df
```

2. **Clean Up System**
```bash
# Remove all unused containers, networks, images, and volumes
docker system prune -a --volumes
```

## Best Practices

1. **Resource Management**
   - Regularly clean up unused resources
   - Monitor container resource usage
   - Use appropriate resource limits

2. **Security**
   - Never run containers as root unless necessary
   - Use official images when possible
   - Regularly update base images

3. **Debugging**
   - Use appropriate logging levels
   - Implement health checks
   - Monitor container states

4. **Performance**
   - Use multi-stage builds
   - Optimize image layers
   - Implement proper caching strategies

## Common Troubleshooting Commands

1. **Container Issues**
```bash
# Check container logs
docker logs container_id

# Check container processes
docker top container_id

# Show container resource usage
docker stats container_id
```

2. **Network Issues**
```bash
# Check container networking
docker network inspect network_name

# View container IP address
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_id
```

Remember to always use these commands with caution, especially in production environments. Some commands like `docker system prune` can have significant impacts on your system.

