Overview
The Containers API through theContainersClient lets you run containers on demand inside a Room via the RoomClient. This is particularly useful for ad-hoc tasks or testing code before deploying it as a Project or Room Service. With the Containers API you can:
- Pull an image from a public or private registry
- Run a container from an image
- Stream logs for containers
- Open an interactive terminal in a running container
- Manage containers and images (list/stop/delete)
API Methods
list_images
- Description: List images currently available to the room (built or pulled previously).
- Parameters: None.
- Returns:
list[Image]including tags, size, labels, and manifest metadata.
delete_image
- Description: Delete an unused image from the room.
- Parameters:
image: Tag or digest string to delete.
- Returns:
None.
pull_image
- Description: Pull an image into the room. Supports passing registry credentials when needed.
- Parameters:
tag: Image reference (e.g.myrepo/app:latest).credentials: Optional list ofDockerSecretcredentials for private registries.
- Returns:
Noneonce the pull completes.
run
- Description: Start a container in the room.
- Parameters (all optional except
image):image: Container image to run.command: Override the default command (str).env: Environment variables injected asdict[str, str].mount_path,mount_subpath: Mount configuration when using storage.role,participant_name: Launch on behalf of a specific room identity.ports: Port mappings{container_port: host_port}.variables: Additional runtime variables (often MeshAgent-specific).credentials: Registry secrets for the image.name: Friendly name for the container.
- Returns: Container ID string.
exec
- Description: Attach an interactive command to an existing container and stream its output.
- Parameters:
container_id: Target container.command: Optional command list; defaults to the container’s shell.tty: Request a TTY session (Truefor interactive).detach: Leave the session running in the background (Trueby default).
- Returns: A
Containerobject exposing async helpers to read output, send input, resize the terminal, and await completion.
logs
- Description: Stream container logs and optionally follow until exit.
- Parameters:
container_id: Target container.follow:Trueto keep streaming until the container exits.
- Returns:
LogStream[None], which you can iterate for log lines or await for completion.
list
- Description: List containers in the room, optionally including exited ones.
- Parameters:
all:Trueto include stopped containers.
- Returns:
list[RoomContainer]with name, image, state, status, applicable manifest, and metadata about who started it.
stop
- Description: Request a graceful stop (or force stop) of a running container.
- Parameters:
container_id: Target container.force: Send a forceful termination signal whenTrue.
- Returns:
None.
delete
- Description: Remove container metadata after it has stopped. Useful for cleaning up history.
- Parameters:
container_id: Container to delete.
- Returns:
None.