Docker Operations¶
Manager Docker containers, volumes and networks. These operations allow you to manage Docker from the view of the current inventory host. See the @docker Connector to use Docker containers as inventory directly.
Facts used in these operations: docker.DockerContainer, docker.DockerNetwork, docker.DockerPlugin, docker.DockerVolume.
docker.container
¶
Manage Docker containers
docker.container(
container: str, image: str="", ports: list[str] | None=None,
networks: list[str] | None=None, volumes: list[str] | None=None,
env_vars: list[str] | None=None, pull_always: bool=False, present: bool=True,
force: bool=False, start: bool=True, **kwargs,
)
container**: name to identify the container image**: container image and tag ex: nginx:alpine networks**: network list to attach on container ports**: port list to expose volumes**: volume list to map on container env_vars**: environment variable list to inject on container pull_always**: force image pull force**: remove a container with same name and create a new one present**: whether the container should be up and running start**: start or stop the container
amples:**
ode:: python
# 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,
)
# Stop a container docker.container(
name=”Stop Nginx container”, container=”nginx”, start=False,
)
# Start a container docker.container(
name=”Start Nginx container”, container=”nginx”, start=True,
) Note:
This operation also inherits all global arguments.
docker.image
¶
Stateless operation
This operation will always execute commands and is not idempotent.
Manage Docker images
docker.image(image, present=True, **kwargs)
image**: Image and tag ex: nginx:alpine present**: whether the Docker image should exist
amples:**
ode:: python
# Pull a Docker image docker.image(
name=”Pull nginx image”, image=”nginx:alpine”, present=True,
)
# Remove a Docker image docker.image(
name=”Remove nginx image”, image:”nginx:image”, present=False,
) Note:
This operation also inherits all global arguments.
docker.network
¶
Manage docker networks
docker.network(
network: str, driver: str="", gateway: str="", ip_range: str="", ipam_driver: str="",
subnet: str="", scope: str="", aux_addresses: dict[str, str] | None=None,
opts: list[str] | None=None, ipam_opts: list[str] | None=None,
labels: list[str] | None=None, ingress: bool=False, attachable: bool=False,
present: bool=True, **kwargs,
)
network**: Network name driver**: Network driver ex: bridge or overlay gateway**: IPv4 or IPv6 Gateway for the master subnet ip_range**: Allocate container ip from a sub-range ipam_driver**: IP Address Management Driver subnet**: Subnet in CIDR format that represents a network segment scope**: Control the network’s scope aux_addresses**: named aux addresses for the network opts**: Set driver specific options ipam_opts**: Set IPAM driver specific options labels**: Label list to attach in the network ingress**: Create swarm routing-mesh network attachable**: Enable manual container attachment present**: whether the Docker network should exist
amples:**
ode:: python
# Create Docker network docker.network(
network=”nginx”, attachable=True, present=True,
) Note:
This operation also inherits all global arguments.
docker.plugin
¶
Manage Docker plugins
docker.plugin(
plugin: str, alias: str | None=None, present: bool=True, enabled: bool=True,
plugin_options: dict[str, str] | None=None, **kwargs,
)
plugin**: Plugin name alias**: Alias for the plugin (optional) present**: Whether the plugin should be installed enabled**: Whether the plugin should be enabled plugin_options**: Options to pass to the plugin
amples:**
ode:: python
# Install and enable a Docker plugin docker.plugin(
name=”Install and enable a Docker plugin”, plugin=”username/my-awesome-plugin:latest”, alias=”my-plugin”, present=True, enabled=True, plugin_options={“option1”: “value1”, “option2”: “value2”},
) Note:
This operation also inherits all global arguments.
docker.prune
¶
Stateless operation
This operation will always execute commands and is not idempotent.
Execute a docker system prune.
docker.prune(all: bool=False, volumes: bool=False, filter: str="", **kwargs)
all**: Remove all unused images not just dangling ones volumes**: Prune anonymous volumes filter**: Provide filter values (e.g. “label=<key>=<value>” or “until=24h”)
amples:**
ode:: python
# Remove dangling images docker.prune(
name=”remove dangling images”,
)
# Remove all images and volumes docker.prune(
name=”Remove all images and volumes”, all=True, volumes=True,
)
# Remove images older than 90 days docker.prune(
name=”Remove unused older than 90 days”, filter=”until=2160h”
) Note:
This operation also inherits all global arguments.
docker.volume
¶
Manage Docker volumes
docker.volume(volume: str, driver: str="", labels: list[str] | None=None, present: bool=True, **kwargs)
volume**: Volume name driver**: Docker volume storage driver labels**: Label list to attach in the volume present**: whether the Docker volume should exist
amples:**
ode:: python
# Create a Docker volume docker.volume(
name=”Create nginx volume”, volume=”nginx_data”, present=True
) Note:
This operation also inherits all global arguments.