Skip to main content

prefect_docker.containers

Integrations with Docker Containers.

Functions

create_docker_container

create_docker_container(image: str, command: Optional[Union[str, List[str]]] = None, name: Optional[str] = None, detach: Optional[bool] = None, entrypoint: Optional[Union[str, List[str]]] = None, environment: Optional[Union[Dict[str, str], List[str]]] = None, docker_host: Optional[DockerHost] = None, **create_kwargs: Dict[str, Any]) -> Container
Create a container without starting it. Similar to docker create. Args:
  • image: The image to run.
  • command: The command(s) to run in the container.
  • name: The name for this container.
  • detach: Run container in the background.
  • docker_host: Settings for interacting with a Docker host.
  • entrypoint: The entrypoint for the container.
  • environment: Environment variables to set inside the container, as a dictionary or a list of strings in the format [“SOMEVARIABLE=xxx”].
  • **create_kwargs: Additional keyword arguments to pass to client.containers.create.
Returns:
  • A Docker Container object.
Examples: Create a container with the Prefect image.
from prefect import flow
from prefect_docker.containers import create_docker_container

@flow
def create_docker_container_flow():
    container = create_docker_container(
        image="prefecthq/prefect",
        command="echo 'hello world!'"
    )

create_docker_container_flow()

get_docker_container_logs

get_docker_container_logs(container_id: str, docker_host: Optional[DockerHost] = None, **logs_kwargs: Dict[str, Any]) -> str
Get logs from this container. Similar to the docker logs command. Args:
  • container_id: The container ID to pull logs from.
  • docker_host: Settings for interacting with a Docker host.
  • **logs_kwargs: Additional keyword arguments to pass to client.containers.get(container_id).logs.
Returns:
  • The Container’s logs.
Examples: Gets logs from a container with an ID that starts with “c157”.
from prefect import flow
from prefect_docker.containers import get_docker_container_logs

@flow
def get_docker_container_logs_flow():
    logs = get_docker_container_logs(container_id="c157")
    return logs

get_docker_container_logs_flow()

start_docker_container

start_docker_container(container_id: str, docker_host: Optional[DockerHost] = None, **start_kwargs: Dict[str, Any]) -> Container
Start this container. Similar to the docker start command. Args: Returns:
  • The Docker Container object.
Examples: Start a container with an ID that starts with “c157”.
from prefect import flow
from prefect_docker.containers import start_docker_container

@flow
def start_docker_container_flow():
    container = start_docker_container(container_id="c157")
    return container

start_docker_container_flow()

stop_docker_container

stop_docker_container(container_id: str, docker_host: Optional[DockerHost] = None, **stop_kwargs: Dict[str, Any]) -> Container
Stops a container. Similar to the docker stop command. Args: Returns:
  • The Docker Container object.
Examples: Stop a container with an ID that starts with “c157”.
from prefect import flow
from prefect_docker.containers import stop_docker_container

@flow
def stop_docker_container_flow():
    container = stop_docker_container(container_id="c157")
    return container

stop_docker_container_flow()

remove_docker_container

remove_docker_container(container_id: str, docker_host: Optional[DockerHost] = None, **remove_kwargs: Dict[str, Any]) -> Container
Remove this container. Similar to the docker rm command. Args: Returns:
  • The Docker Container object.
Examples: Removes a container with an ID that starts with “c157”.
from prefect import flow
from prefect_docker.containers import remove_docker_container

@flow
def remove_docker_container_flow():
    container = remove_docker_container(container_id="c157")
    return container

remove_docker_container()