Docker Image Support Spec

This chapter will take you to know Kato’s support specifications for creating components based on Docker images.

Mirror Support Specification

Kato is the fastest and most compatible way to make image creation components based on existing standards. Here we will describe what images can run on Kato from the following aspects:

Cannot Run Mirror

Here we first explain which images cannot run, this is very important.

Basic System Environment

The basic system mirrors represented by alpine, centos, and debian are necessary for us to make component images, but they cannot be run directly on Kato. Why? Because their startup process is not running in the foreground by default, that is, the container will exit when it starts. You can only open stdin for TTL interactive operation when running locally.

Basic Language & Tools

At present, more developers use Docker mirroring to distribute command-line tools, such as golang compilation environment, docker compilation environment, maven compilation environment, and so on. The reason why they cannot operate is the same as the first category.

Runnable Mirror

In addition to the image types described above, we recommend creating the following types of components based on images:

Middleware

Such as Mysql Mongo Redis Tomcat nginx and other frequently used mid-price components.

Web Tools

Such as phpmyadmin etc.

Basic Components

Such as sFTP component, minio object storage component, etc.

Other Component Mirrors that Provide TCP or UDP Protocol Components

Mirror Detection Specification

The image can be normally obtained by the Kato cluster server
  • The provided mirror name is accurate and exists in the corresponding mirror repository
  • For private repository mirroring, please provide account password
  • For self-built repository, please configure HTTPs or configure Docker trust for Kato cluster nodes
Kato will obtain the following attribute information from the mirror
  • Port, the Expose port information configured in the dockerfile will be obtained.
  • Environment variables. Environment variables are the recommended custom configuration method under cloud native, and are also recommended users of Docker image custom configuration.
  • Storage mount, the volume information configured in dockerfile will be obtained

The components created by Docker compose are only obtained from the compose configuration, and the docker run creation is obtained from the creation commands and images.

Setting of component memory allocation

The components created by mirroring use 512M memory allocation by default. If the components created by dockerrun or docker compose show that the memory parameters are set, the settings will prevail.

Setting of component deployment type

The component created by the image is set to Stateless deployment type by default. After version 5.1.3, when the image name is the following value, the default setting is Stateful deployment type:

  • mysql
  • mariadb
  • mongo
  • redis
  • tidb
  • zookeeper
  • kafka
  • mysqldb
  • mongodb
  • memcached
  • yugabytedb
  • yugabyte
  • etcd
  • postgres
  • postgresql
  • elasticsearch
  • consul
  • percona
  • mysql-server
  • mysql-cluster

For example, the following image will be deployed as a stateful type:

  • mysql:latest
  • hub.example.com/xxx/mysql:5.5
  • xxx/mysql:5.7