Cloud Container Engine (CCE) is a platform for developers and partners to develop, deploy, and manage containerized applications. With CCE, you can roll out new containerized applications cost-efficiently anytime, anywhere.
The Docker technology is at the core of CCE. Docker is an open platform for developing, shipping, and running applications. It is designed to deliver your applications faster. With Docker, you can separate your applications from your infrastructure and treat your infrastructure like a managed application. Docker helps you ship code faster, test faster, deploy faster, and shorten the cycle between writing code and running code.
If you intend to work with CCE, it is important that you have a basic understanding of Docker and can use the Docker command line. For more information about Docker, visit https://docs.docker.com/.
You should also have an understanding of the following concepts.
A container image is a read-only template used to create containers. For example, a container image could contain a complete Ubuntu operating system with required programs and their dependency files installed.
Docker provides a simple way to build new container images or update existing container images. In addition to building container images on your own, you can download container images that others have created.
In CCE, container images are classified into two types:
Internal container images are stored in the container registry provided by CCE. Internal container images uploaded by a user are private to all users who are created by the same tenant as the image uploader.
External container images are stored in container registries provided by a third party, for example, the Docker Hub from Docker Inc. CCE users can download container images from public third-party container registries.
A container cluster consists of at least one master and node.
Container clusters are classified into two types: Single and HA.
Number of Masters
Number of Nodes
At least one
At least one
Your container cluster is private and inaccessible to other users. This ensures that your containerized applications are securely isolated from containerized applications of other users.
Note that a container cluster must be created before a containerized application is created.
A master manages the cluster it belongs to. The master coordinates all activities in the cluster, such as scheduling applications, maintaining applications' desired state, scaling applications, and rolling out new updates.
A node is an Elastic Cloud Server (ECS) on which a containerized application will run. Every node runs a node agent, which is used to manage container instances on the node.
When deploying an application in a cluster, CCE tells the cluster master to start the application containers. The master then schedules the containers to run on a node in the cluster. Nodes communicate with their master using the Kubernetes APIs exposed by the master. Users can also use Kubernetes APIs directly to interact with clusters.
A containerized application is software provided to end users through CCE. For example, it can be a website application or a mobile app.
A component is a function module of a containerized application. Components are decoupled from each other.
A container is a runtime instance of a container image. Every instance of a component is shipped as a container.
A single containerized application consists of one or more components. Each component has one or more containers.
A component template defines a template name, container images, network protocols, ports, memory capacity, CPU cores, environment variables, and volumes. With a component template, you can quickly create a containerized application with the specifications documented in the template.
A service defines a set of instances and a means for accessing them, such as a single stable IP address and corresponding domain name system (DNS) name.
To address component communication issues, service names are used instead of IP addresses. You must specify a service name when creating a containerized application.
A namespace is like a prefix to the name of a resource. Namespaces help different applications and projects to share a container cluster, such as by preventing name collisions between unrelated projects.
The App Designer is a graphical orchestration tool. With the App Designer, you can drag-and-drop to design containerized applications and their topology and save graphical designs as application templates. With the template, you can quickly create multi-container applications. This makes application deployment easier and more efficient.
An environment variable refers to a container runtime variable. A maximum of 30 environment variables can be defined in a component template. The variables of a containerized application can be modified even after the application is deployed. This gives greater flexibility in application management.
There are two ways to define an environment variable:
A volume is a specially-designated directory within one or more containers that bypasses the Union File System. Using a volume means mounting an absolute path on a host (also called a node) to a path on a container, thereby achieving sharing between hosts and containers.
The current CCE version supports only EVS plug-ins.
There are two ways to define a volume:
For example, to mount the /src/webapp directory on a host to the /opt/webapp directory on the frontend container, run the following command:
docker run -d -P --name frontend -v /src/webapp:/opt/webapp frontend
One CPU core is equal to 1000 mcores. CPU usage of containerized applications is typically measured in mcores.