Note Container API is available in Libcloud 1.0.0RC and higher.

Note Container API is currently in an EXPERIMENTAL state.

Container API allows users to install and deploy containers onto container based virtualization platforms. This is designed to target both on-premise installations of software like Docker as well as interfacing with Cloud Service Providers that offer Container-as-a-Service APIs.

For a working example of the container driver with cluster support, see the example for Amazon’s Elastic Container Service:

from libcloud.container.base import ContainerImage from libcloud.container.types import Provider from libcloud.container.providers import get_driver cls = get_driver ( Provider . ECS ) conn = cls ( access_id = 'SDHFISJDIFJSIDFJ' , secret = 'THIS_IS)+_MY_SECRET_KEY+I6TVkv68o4H' , region = 'ap-southeast-2' ) for cluster in conn . list_clusters (): print ( cluster . name ) if cluster . name == 'default' : container = conn . deploy_container ( cluster = cluster , name = 'my-simple-app' , image = ContainerImage ( id = None , name = 'simple-app' , path = 'simple-app' , version = None , driver = conn ) )

For an example of the simple container support, see the Docker example:

from libcloud.container.types import Provider from libcloud.container.providers import get_driver cls = get_driver ( Provider . DOCKER ) driver = cls ( host = 'https://198.61.239.128' , port = 4243 , key_file = 'key.pem' , cert_file = 'cert.pem' ) image = driver . install_image ( 'tomcat:8.0' ) container = driver . deploy_container ( 'tomcat' , image )

Drivers¶ Container-as-a-Service providers will implement the ContainerDriver class to provide functionality for : Listing deployed containers

Starting, stopping and restarting containers (where supported)

Destroying containers

Creating/deploying containers

Listing container images

Installing container images (pulling an image from a local copy or remote repository) Driver base API documentation is found here: ContainerDriver - A driver for interfacing to a container provider

Simple Container Support¶ ContainerImage - Represents an image that can be deployed, like an application or an operating system

- Represents an image that can be deployed, like an application or an operating system Container - Represents a deployed container image running on a container host

Cluster Suppport¶ Cluster support extends on the basic driver functions, but where drivers implement the class-level attribute supports_clusters as True clusters may be listed, created and destroyed. When containers are deployed, the target cluster can be specified. ContainerCluster - Represents a deployed container image running on a container host

- Represents a deployed container image running on a container host ClusterLocation - Represents a location for clusters to be deployed

Bootstrapping Docker with Compute Drivers¶ The compute and container drivers can be combined using the deployment feature of the compute driver to bootstrap an installation of a container virtualization provider like Docker. Then using the Container driver, you can connect to that API and install images and deploy containers.

Supported Providers¶ For a list of supported providers see supported providers page.

API Reference¶ For a full reference of all the classes and methods exposed by the Container API, see this page.