Docker compose for MariaDB

Docker compose file for MariaDB

MariaDB, the robust and community-driven relational database, can be a powerful tool for your applications. But managing its data and ensuring persistence across container restarts can be a bumpy ride. That's where Docker Compose and volume mounts come in, like trusty steeds to wrangle your data storage woes.

Here's how you can use Docker Compose and volume mounts to wrangle your MariaDB data like a seasoned database wrangler:

Define your Docker Compose file:

version: "3"
services:
  mariadb:
    image: mariadb:10.5
    volumes:
      - ./data:/var/lib/mysql
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: "your_password"
  • This defines a "mariadb" service using the official MariaDB 10.5 image.

  • The volumes section maps the local directory ./data (replace with your desired path) to the container's /var/lib/mysql directory, where MariaDB stores its data.

  • The ports section forwards the container's internal MySQL port (3306) to your host system, making it accessible.

  • The environment section sets the MySQL root password for secure access.

Here's a breakdown of the YAML configuration above:

1. version: "3"

  • Specifies the version of the Docker Compose file format being used. In this case, it's version 3, which is a common and widely supported version.

2. services:

  • This section defines the different services (containers) that will be part of your application setup. In this example, there's a single service named mariadb.

3. mariadb:

  • This section contains the configuration details for the MariaDB service.

    • image: mariadb:10.5

      • Instructs Docker Compose to pull and use the official MariaDB 10.5 image from Docker Hub as the basis for the container.
    • volumes:

      • Sets up volume mounts to manage data persistence.

        • ./data:/var/lib/mysql

          • Maps the local directory ./data on your host machine to the container's /var/lib/mysql directory, where MariaDB stores its data. This ensures that any data created within the container persists even if the container is stopped or restarted.
    • ports:

      • Exposes ports for communication.

        • 3306:3306

          • Maps the container's internal port 3306 (the default MySQL port) to port 3306 on your host machine, allowing you to access the MariaDB database from your host system.
    • environment:

      • Sets environment variables for the container.

        • MYSQL_ROOT_PASSWORD: "your_password"

          • Sets the root password for the MariaDB database, which is required for secure access. Replace "your_password" with a strong password of your choice.

Remember, this is just a basic setup, and you can customize it further based on your specific needs. Let your Docker Compose and volume mount expertise flourish, and your MariaDB database will gallop towards greatness!

Did you find this article valuable?

Support The art of Code by becoming a sponsor. Any amount is appreciated!