Note that variable expansion in --from and FROM was working oddly, see: https://github.com/docker/cli/issues/3356#issuecomment-957892224 for context.
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.
-
Pull the image from Docker Hub:
docker pull clearlinux/mariadb -
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:
-
mariadb-deployment.yaml: example using default configuration with secret to create a basic Mariadb service. -
mariadb-deployment-conf.yaml: example using your own custom configuration with secret to create a Mariadb service.
Steps to deploy mariadb on a Kubernetes cluster:
-
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> -
If you want to deploy
mariadb-deployment.yamlkubectl create -f mariadb-deployment.yamlOr if you want to deploy
mariadb-deployment-conf.yamlkubectl create -f mariadb-deployment-conf.yaml -
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.
-
Clone the clearlinux/dockerfiles repository.
git clone https://github.com/clearlinux/dockerfiles.git -
Change to the directory of the application:
cd mariadb/ -
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_PASSWORDspecifies 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.
-
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 ... -
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