Skip to content

Latest commit

 

History

History

mariadb

Clear Linux* OS mariadb container image

What is this image?

clearlinux/mariadb is a Docker image with mariadb running on top of the official clearlinux base image.

Mariadb is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle Corporation

For other Clear Linux* OS based container images, see: https://hub.docker.com/u/clearlinux

Why use a clearlinux based image?

Clear Linux* OS is an open source, rolling release Linux distribution optimized for performance and security, from the Cloud to the Edge, designed for customization, and manageability.

Clear Linux* OS based container images use:

  • Optimized libraries that are compiled with latest compiler versions and flags.
  • Software packages that follow upstream source closely and update frequently.
  • An aggressive security model and best practices for CVE patching.
  • A multi-staged build approach to keep a reduced container image size.
  • The same container syntax as the official images to make getting started easy.

To learn more about Clear Linux* OS, visit: https://clearlinux.org.

Deployment:

Deploy with Docker

The easiest way to get started with this image is by simply pulling it from Docker Hub.

*Note: This container uses the same syntax as the official mariadb image.

  1. Pull the image from Docker Hub:

    docker pull clearlinux/mariadb
    
  2. Start a container using the examples below:

    docker run --name clr-mariadbtest -e MYSQL_ROOT_PASSWORD=mypass -d clearlinux/mariadb
    # Get the mariadb server IP
    docker inspect clr-mariadbtest | grep IPAddress
    # Test it
    mysql -h $IP -u root -p
    

Deploy with Kubernetes

This image can also be deployed on a Kubernetes cluster, such as minikube.The following example YAML files are provided in the repository as reference for Kubernetes deployment:

Steps to deploy mariadb on a Kubernetes cluster:

  1. Create secret for Mariadb service.

    kubectl create secret generic mariadb \
    --from-literal=mysql-root-password=<your-mysql-root-pwd> \
    --from-literal=mysql-user=<your-mysql-user> \
    --from-literal=mysql-password=<your-mysql-pwd>
    
  2. If you want to deploy mariadb-deployment.yaml

    kubectl create -f mariadb-deployment.yaml
    

    Or if you want to deploy mariadb-deployment-conf.yaml

    kubectl create -f mariadb-deployment-conf.yaml
    
  3. Install Mariadb bundle and connect to the service, where 30001 is the port number defined in your service.

    swupd bundle-add mariadb
    mysql -h<nodeIP> -u<your-mysql-user> -p<your-mysql-pwd> -P30001
    

Build and modify:

The Dockerfiles for all Clear Linux* OS based container images are available at https://github.com/clearlinux/dockerfiles. These can be used to build and modify the container images.

  1. Clone the clearlinux/dockerfiles repository.

    git clone https://github.com/clearlinux/dockerfiles.git
    
  2. Change to the directory of the application:

    cd mariadb/
    
  3. Build the container image:

    docker build -t clearlinux/mariadb .
    

    Refer to the Docker documentation for default build arguments. Additionally:

    • swupd_args - specifies arguments to pass to the Clear Linux* OS software manager. See the swupd man pages for more information.

    • Environment Variables: MYSQL_ROOT_PASSWORD specifies MariaDB root password

Container Image Size:

Clear Linux enables the AVX2 instructions compile in default for many applications, including mariadb. With the two sets of binaries/libraries as below, this mariadb in Clear Linux can automatically and dynamically choose corresponding set to support different IA platforms.

  1. SSE:

    /usr/bin/mariadb
    /usr/bin/mariadb-access
    /usr/bin/mariadb-admin
    /usr/bin/mariadb-backup
    ...
    /usr/bin/mysql
    /usr/bin/mysql_client_test
    /usr/bin/mysql_config
    ...
    /usr/lib64/libmariadb.so
    /usr/lib64/libmariadbd.so
    /usr/lib64/libmariadbd.so.19
    ...
    
  2. AVX/AVX2:

    /usr/bin/haswell/mariadb
    /usr/bin/haswell/mariadb-admin
    /usr/bin/haswell/mariadb-backup
    /usr/bin/haswell/mariadb-binlog
    ...
    /usr/bin/haswell/mysql
    /usr/bin/haswell/mysql_client_test
    /usr/bin/haswell/mysql_ldb
    ...
    /usr/lib64/haswell/libmariadb.so
    /usr/lib64/haswell/libmariadbd.so
    /usr/lib64/haswell/libmariadbd.so.19
    ...
    

Licenses

All licenses for the Clear Linux* Project and distributed software can be found at https://clearlinux.org/terms-and-policies