chi.container
The chi.container
module exposes a functional interface for interacting
with application containers.
Important
Currently, only the CHI@Edge site support container operations.
- chi.container.associate_floating_ip(container_ref: str, floating_ip_address=None) str [source]
Assign a Floating IP address to a container.
The container’s first address will be used for the assignment.
- Parameters:
- Returns:
The Floating IP address, if it was bound successfully, else None.
- chi.container.create_container(name: str, image: str = None, exposed_ports: list[str] = None, reservation_id: str = None, start: bool = True, start_timeout: int = None, platform_version: int = 2, **kwargs) Container [source]
Create a container instance.
- Parameters:
name (str) – The name to give the container.
image (str) – The Docker image, with or without tag information. If no tag is provided, “latest” is assumed.
device_profiles (list[str]) – An optional list of device profiles to request be configured on the container when it is created. Edge devices may have differing sets of supported device profiles, so it is important to understand which profiles are supported by the target device for your container.
environment (dict) – A set of environment variables to pass to the container.
exposed_ports (list[str]) – A list of ports to expose on the container. TCP or UDP can be provided with a slash prefix, e.g., “80/tcp” vs. “53/udp”. If no protocol is provided, TCP is assumed.
host (str) – The Zun host to launch a container on. If not specified, the host is chosen by Zun.
runtime (str) – The container runtime to use. This should only be overridden when explicitly launching containers onto a host/platform requiring a separate runtime to, e.g., pass-through GPU devices, such as the “nvidia” runtime provided by NVIDIA Jetson Nano/TX2.
start (bool) – Whether to automatically start the container after it is created. Default True.
**kwargs – Additional keyword arguments to send to the Zun client’s container create call.
- chi.container.destroy_container(container_ref: str)[source]
Delete the container.
This will automatically stop the container if it is currently running.
- Parameters:
container_ref (str) – The name or ID of the container.
- chi.container.download(container_ref: str, source: str, dest: str)[source]
Download a file or directory from a running container.
This method requires your running container to include both the POSIX sh and GNU tar utilities.
- chi.container.execute(container_ref: str, command: str) dict [source]
Execute a one-off process inside a running container.
- chi.container.get_logs(container_ref: str, stdout=True, stderr=True)[source]
Print all logs outputted by the container.
- chi.container.list_containers() list[Container] [source]
List all containers owned by this project.
- Returns:
A list of containers.
- chi.container.snapshot_container(container_ref: str, repository: str, tag: str = 'latest') str [source]
Create a snapshot of a running container.
This will store the container’s file system in Glance as a new Image. You can then specify the Image ID in container create requests.
- chi.container.upload(container_ref: str, source: str, dest: str) dict [source]
Upload a file or directory to a running container.
This method requires your running container to include the GNU tar utility.
- chi.container.wait_for_active(container_ref: str, timeout: int = 120) Container [source]
Wait for a container to transition to the running state.
- Parameters:
- Raises:
TimeoutError – if the timeout was reached before the container started.
- Returns:
The container representation.