Docker Cli
Helper for using the Docker CLI to build, run, stop, inspect, and manage containers and images. Use when the user wants to perform container-related tasks fr...
Description
name: docker-cli description: Helper for using the Docker CLI to build, run, stop, inspect, and manage containers and images. Use when the user wants to perform container-related tasks from the command line, such as building images, running services, cleaning up resources, or checking logs.
Docker CLI Helper
This skill explains how to use the Docker command line for common container workflows.
When to Use
Use this skill when:
- The user wants to build or rebuild a Docker image.
- The user wants to run a container (one-off or long-running).
- The user wants to see which containers/images/volumes exist.
- The user wants to stop or remove containers/images.
- The user wants to see logs, exec into a container, or check resource usage.
Requirements
- Docker is installed and running.
docker versionordocker infoworks in the user’s shell.
If unsure, suggest the user run:
docker version
to confirm Docker is available.
Safety Guidelines
- Prefer read-only or non-destructive commands first:
docker ps,docker ps -adocker imagesdocker logsdocker inspect
- Be cautious with destructive commands:
docker rm,docker rmidocker system prunedocker volume rm
- Only recommend destructive cleanups when the user explicitly wants to free resources and understands what will be removed.
Common Workflows
1. List and inspect containers
List running containers:
docker ps
List all containers (including stopped):
docker ps -a
Inspect a container in detail:
docker inspect <container-id-or-name>
2. List and inspect images
List local images:
docker images
Inspect an image:
docker inspect <image-id-or-name>
3. Build images
Build an image from a Dockerfile in the current directory:
docker build -t <image-name>:<tag> .
Example:
docker build -t my-app:latest .
If the Dockerfile is in another directory:
docker build -t my-app:latest path/to/context
4. Run containers
Run a container in the foreground:
docker run --rm -it <image-name>:<tag>
Run in detached mode (background service):
docker run -d --name <container-name> <image-name>:<tag>
Map ports from container to host:
docker run -d --name <container-name> -p 8080:80 <image-name>:<tag>
Mount a host directory into the container:
docker run -d --name <container-name> -v /host/path:/container/path <image-name>:<tag>
5. Stop and remove containers
Stop a running container:
docker stop <container-id-or-name>
Remove a stopped container:
docker rm <container-id-or-name>
Stop and remove in one shot (two commands):
docker stop <container-id-or-name>
docker rm <container-id-or-name>
6. Remove images
Remove an image by ID or name:
docker rmi <image-id-or-name>
Only suggest this when the user is sure the image is no longer needed.
7. Logs and exec
See logs for a container:
docker logs <container-id-or-name>
Stream logs (follow):
docker logs -f <container-id-or-name>
Execute a shell inside a running container (if it has /bin/bash):
docker exec -it <container-id-or-name> /bin/bash
or with /bin/sh:
docker exec -it <container-id-or-name> /bin/sh
8. Clean up resources
Only suggest these when the user explicitly wants cleanup:
- Remove all stopped containers:
docker container prune
- Remove unused images:
docker image prune
- Remove everything unused (containers, networks, images, and optionally volumes):
docker system prune
For a more aggressive cleanup, but only if the user confirms:
docker system prune -a
Troubleshooting Tips
- If images cannot be pulled, check:
- Network connectivity.
- Registry authentication (if using a private registry).
- If ports are already in use, suggest:
- Changing the host port in
-p host:container. - Or stopping the process that currently uses the port.
- Changing the host port in
- If a container keeps exiting immediately:
- Suggest checking
docker logs <container>for errors. - Inspect entrypoint and command configuration.
- Suggest checking
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!