CloudLinux - Starting a customizable application from KuberDock web interface
Getting started with KuberDock


In this article, we are going to explain (as an example) how to start MySQL container.

Log into KuberDock web interface.

Since, this is a newly created account, and there are no pods running in it, let's create a new pod with MySQL container.

Click on “Add new container”.

Enter the target name Into the search box, “mysql” for this case.

Click on the Search button.

The search results yield a number of images, and we will choose the official image from MySQL upstream, for this example, by pressing the Select button next to the image name.

Now, we can see the first page for the image configuration with settings like: command that will be passed to the container on its start, container pod, UDP or TCP protocol to use, pod port, and whether the container will be accessible over the world. The Volume section allows to set Persistent Storage path and its size.

Let's choose a new disk and call it “mydisk”.

Set its size to 5 gigabytes.

Click on the next button to continue the container configuration .

You may need to get more information about the chosen container, which includes directions how to use it and what tags and environment variables are available.

For that matter, you may Click on Learn More about variables for this image link so...

A new page with the direct link to the image description page on docker hub will open.

Let’s obtain the environment variables for the image, so let’s scroll down the page to the Environment Variables section.

Get back to the the Kuberdock web interface to add some of them for the image by clicking on the “Add Fields” button.

For this example, we will add “MYSQL_ROOT_PASSWORD” value in addition to the list of predefined values.

You can add more fields by clicking on “Add fields” again, let’s now add MYSQL DATABASE value, so that MYSQL will create this database upon application start.

We’ll also create MYSQL USER and MYSQL PASSWORD parameters to create a database user with these credentials.

We are done here, click on Next to proceed to the next step.

Now, we are at the final step of container configuration.

Let's describe what we can set up here.

Restart policy - can be one of:

Always - the pod will be restarted on any exit code.

Never - the pod will not be restarted on any exit code.

On Failure - the pod will be restarted if the exit code is not equal to 0.

Current Resource allocation for your pod like: storage size, RAM and CPU core count.

Kube Type section allows you to choose kube type for your container. Each kube type has its own resource limits, price, so, you can choose the most appropriate for you.

In this example, we have 2 kube types available, Standard and HighMemory

Let’s choose the Standard one.

We can change the number of kubes available to this container by clicking on “plus” or “minus”. The Resource allocation will be multiplied or divided accordingly.

There is also pricing section, where we can see the billing period, the price for Persistent Storage and the Total Price.

There are some other options available such as going Back, Save the container but not start it, and Adding more containers to the pod.

A few words about MySQL, it requires at least 300 MEGABYTES of RAM to function properly. Current resource limit is set to 128 MEGABYTES, which is pretty low for MYSQL, increase the number of kubes by clicking on “plus”

When We increase or decrease the number of Kubes, the resource limit is changing accordingly.

Now, depending on your KuberDock settings, the client has the following options:

  • a) if no billing is set - he can start the application manually
  • b) if there’s a billing solution in place - he can pay the invoice and the application will be started automatically or if the client has some credit on his account, the amount will be charged from his account and the application will be started.

The pod is starting now, so please allow a few minutes to complete image download and pod initialization process.

Once everything is done, the pod status will change from Pending to Running, so your MySQL application will be ready to use.