Managing Docker Containers
A practical reference for day-to-day Docker container management.
Run a Container
docker run nginx # Run in foreground
docker run -d nginx # Run in background (detached)
docker run -d --name webserver nginx # Give it a name
docker run -d -p 8080:80 nginx # Map host port 8080 to container port 80
docker run -d --restart=always nginx # Auto-restart on crash or reboot
List Containers
docker ps # Running containers
docker ps -a # All containers (including stopped)
Start / Stop / Restart
docker start webserver
docker stop webserver
docker restart webserver
Enter a Running Container
docker exec -it webserver bash # Open a shell
docker exec -it webserver sh # For Alpine-based images
View Container Logs
docker logs webserver
docker logs -f webserver # Follow live logs
docker logs --tail 100 webserver # Last 100 lines
Inspect a Container
docker inspect webserver # Full JSON details
docker stats webserver # Live CPU/memory usage
Remove Containers
docker stop webserver && docker rm webserver
docker rm -f webserver # Force-remove a running container
Clean Up Everything Unused
docker system prune # Remove stopped containers, unused networks/images
docker system prune -a # Also remove unused images
docker system prune --volumes # Also remove unused volumes