DockerTools enable an Agent to interact with Docker containers, images, volumes, and networks.

Prerequisites

The Docker tools require the docker Python package. You’ll also need Docker installed and running on your system.

pip install docker

Example

The following example creates an agent that can manage Docker resources:

cookbook/tools/docker_tools.py
import sys
from agno.agent import Agent

try:
    from agno.tools.docker import DockerTools

    docker_tools = DockerTools(
        enable_container_management=True,
        enable_image_management=True,
        enable_volume_management=True,
        enable_network_management=True,
    )

    # Create an agent with Docker tools
    docker_agent = Agent(
        name="Docker Agent",
        instructions=[
            "You are a Docker management assistant that can perform various Docker operations.",
            "You can manage containers, images, volumes, and networks.",
        ],
        tools=[docker_tools],
        show_tool_calls=True,
        markdown=True,
    )

    # Example: List all running Docker containers
    docker_agent.print_response("List all running Docker containers", stream=True)

    # Example: Pull and run an NGINX container
    docker_agent.print_response("Pull the latest nginx image", stream=True)
    docker_agent.print_response("Run an nginx container named 'web-server' on port 8080", stream=True)

except ValueError as e:
    print(f"\nāŒ Docker Tool Error: {e}")
    print("\nšŸ” Troubleshooting steps:")

    if sys.platform == "darwin":  # macOS
        print("1. Ensure Docker Desktop is running")
        print("2. Check Docker Desktop settings")
        print("3. Try running 'docker ps' in terminal to verify access")

    elif sys.platform == "linux":
        print("1. Check if Docker service is running:")
        print("   systemctl status docker")
        print("2. Make sure your user has permissions to access Docker:")
        print("   sudo usermod -aG docker $USER")

    elif sys.platform == "win32":
        print("1. Ensure Docker Desktop is running")
        print("2. Check Docker Desktop settings")

Toolkit Params

ParameterTypeDefaultDescription
enable_container_managementboolTrueEnables container management functions (list, start, stop, etc.)
enable_image_managementboolTrueEnables image management functions (pull, build, etc.)
enable_volume_managementboolFalseEnables volume management functions
enable_network_managementboolFalseEnables network management functions

Toolkit Functions

Container Management

FunctionDescription
list_containersLists all containers or only running containers
start_containerStarts a stopped container
stop_containerStops a running container
remove_containerRemoves a container
get_container_logsRetrieves logs from a container
inspect_containerGets detailed information about a container
run_containerCreates and starts a new container
exec_in_containerExecutes a command inside a running container

Image Management

FunctionDescription
list_imagesLists all images on the system
pull_imagePulls an image from a registry
remove_imageRemoves an image
build_imageBuilds an image from a Dockerfile
tag_imageTags an image
inspect_imageGets detailed information about an image

Volume Management

FunctionDescription
list_volumesLists all volumes
create_volumeCreates a new volume
remove_volumeRemoves a volume
inspect_volumeGets detailed information about a volume

Network Management

FunctionDescription
list_networksLists all networks
create_networkCreates a new network
remove_networkRemoves a network
inspect_networkGets detailed information about a network
connect_container_to_networkConnects a container to a network
disconnect_container_from_networkDisconnects a container from a network

Developer Resources