Skip to main content
Manage Docker containers, volumes and networks. These operations allow you to manage Docker from the view of the current inventory host.

Functions

docker.container

Manage Docker containers.
docker.container(
    container,
    image="",
    ports=None,
    networks=None,
    volumes=None,
    env_vars=None,
    labels=None,
    pull_always=False,
    present=True,
    force=False,
    start=True,
    restart_policy=None,
    auto_remove=False,
)

docker.image

Manage Docker images.
docker.image(
    image,
    present=True,
    force=False,
)

docker.volume

Manage Docker volumes.
docker.volume(
    volume,
    driver="",
    labels=None,
    present=True,
)

docker.network

Manage docker networks.
docker.network(
    network,
    driver="",
    gateway="",
    subnet="",
    labels=None,
    ingress=False,
    attachable=False,
    present=True,
)

Examples

from pyinfra.operations import docker

# Run a container
docker.container(
    name="Deploy Nginx container",
    container="nginx",
    image="nginx:alpine",
    ports=["80:80"],
    present=True,
    force=True,
    networks=["proxy", "services"],
    volumes=["nginx_data:/usr/share/nginx/html"],
    pull_always=True,
    restart_policy="unless-stopped",
    auto_remove=True,
)

# Pull a Docker image
docker.image(
    name="Pull nginx image",
    image="nginx:alpine",
    present=True,
)

# Create a Docker volume
docker.volume(
    name="Create nginx volume",
    volume="nginx_data",
    present=True,
)

# Create Docker network
docker.network(
    name="Create proxy network",
    network="proxy",
    attachable=True,
    present=True,
)

Build docs developers (and LLMs) love