Creating a Custom Docker Image
Docker containers are created from images. An image contains software that can be launched, including the underlying system. A container is an instance of that software.
When we want to automate MariaDB, creating an image with MariaDB and the desired configuration, we may want to create an image by ourselves, which fulfils our needs.
The source code of a Docker image is a Dockerfile. A Dockerfile is written in Docker specific language, and can be compiled into an image by the
docker binary, using the
docker build command.
Most images are based on another image. The base image is specified at the beginning of the Dockerfile, with the
FROM directive. If the base image is not present in the local system, it is downloaded from Dockerhub. For example, we can build an
mariadb-rocksdb:10.5 image starting from the
debian:13 image. In this way, we'll have all the software included in a standard Debian image, and we'll add MariaDB and its configuration upon that image.
All the following Dockerfile directives are compiled into a new Docker image, identified by an MD5 string. Each of these images is based on the image compiled from the previous directive. A physical compiled image can serve as a base for any number of images. This mechanism saves a lot of disk space, download time and build time.
Good Practices and Caveats
More details can be found in the Docker documentation:
Content initially contributed by Vettabase Ltd.