Container Lifecycle
| Command | Description |
docker run -d --name myapp nginx | Run container in background |
docker run -p 8080:80 nginx | Map port 8080 to container port 80 |
docker run -v /host:/container nginx | Mount volume |
docker run --rm alpine echo hi | Run and auto-remove |
docker start/stop/restart <name> | Manage container state |
docker rm <name> | Remove stopped container |
docker rm -f <name> | Force remove running container |
Images
| Command | Description |
docker build -t myapp . | Build image from Dockerfile |
docker pull nginx:latest | Download image |
docker push myuser/myapp | Push to Docker Hub |
docker images | List local images |
docker rmi <image> | Remove image |
docker image prune | Remove dangling images |
Debugging
# Execute command in running container
docker exec -it myapp bash
# View logs
docker logs myapp
docker logs -f myapp # Follow logs
docker logs --tail 100 myapp # Last 100 lines
# Inspect container
docker inspect myapp
# Container resource usage
docker stats
Cleanup
# Remove all stopped containers
docker container prune
# Remove unused images, containers, networks
docker system prune
# Nuclear option: remove EVERYTHING
docker system prune -a --volumes