- Run a container
docker run [OPTIONS] IMAGE [COMMAND]
# Example: Run nginx in detached mode with port mapping
docker run -d -p 80:80 nginx
- List containers
# List running containers
docker ps
# List all containers (including stopped)
docker ps -a
- Stop container
docker stop [CONTAINER_ID/NAME]
- Remove container
# Remove a stopped container
docker rm [CONTAINER_ID/NAME]
# Force remove a running container
docker rm -f [CONTAINER_ID/NAME]
- Execute command in container
docker exec -it [CONTAINER_ID/NAME] [COMMAND]
# Example: Open shell in container
docker exec -it my-container bash
- Build image
docker build -t [NAME:TAG] .
# Example: Build with specific Dockerfile
docker build -f Dockerfile.prod -t myapp:prod .
- List images
docker images
- Remove image
docker rmi [IMAGE_ID/NAME]
- Pull image
docker pull [IMAGE_NAME]:[TAG]
- Push image
docker push [IMAGE_NAME]:[TAG]
- View container logs
docker logs [CONTAINER_ID/NAME]
# Follow log output
docker logs -f [CONTAINER_ID/NAME]
- Container resource usage
docker stats [CONTAINER_ID/NAME]
- Inspect container
docker inspect [CONTAINER_ID/NAME]
- List networks
docker network ls
- Create network
docker network create [NETWORK_NAME]
- Connect container to network
docker network connect [NETWORK_NAME] [CONTAINER_ID/NAME]
- Create volume
docker volume create [VOLUME_NAME]
- List volumes
docker volume ls
- Remove volume
docker volume rm [VOLUME_NAME]
- Start services
docker-compose up
# Detached mode
docker-compose up -d
- Stop services
docker-compose down
- View service logs
docker-compose logs [SERVICE_NAME]
- System information
docker info
- Clean up system
# Remove unused resources
docker system prune
# Remove all unused images
docker system prune -a
- View disk usage
docker system df
- Export container
docker export [CONTAINER_ID] > container.tar
- Import container
docker import container.tar [IMAGE_NAME]
- Save image
docker save [IMAGE_NAME] > image.tar
- Load image
docker load < image.tar
- View container changes
docker diff [CONTAINER_ID/NAME]
Common options you can add to docker run
:
-d # Run in detached mode
-p HOST:CONTAINER # Port mapping
-v HOST:CONTAINER # Volume mounting
--name # Assign container name
--rm # Remove container when stopped
-e KEY=VALUE # Set environment variables
--network # Connect to network
--restart # Restart policy
Example with multiple options:
docker run -d \
--name my-app \
-p 3000:3000 \
-v $(pwd):/app \
-e NODE_ENV=production \
--restart always \
my-app:latest