In sintesi: tratta MariaDB come dati persistenti, non come un semplice container usa e getta
Il precedente articolo su CasaOS presentava MariaDB come database centrale per le app self-hosted. Il principio di distribuzione è ancora valido, ma l’aspetto importante non è fare clic su Installa: è fissare una versione dell’immagine sensata, impostare una sola volta le credenziali di inizializzazione e collegare la directory del database a uno storage persistente.
Usa il container ufficiale di MariaDB come base
services:
mariadb:
image: mariadb:lts
restart: unless-stopped
environment:
MARIADB_ROOT_PASSWORD: change-this-now
MARIADB_DATABASE: appdb
MARIADB_USER: appuser
MARIADB_PASSWORD: change-this-too
volumes:
- /path/to/mariadb:/var/lib/mysql
ports:
- "3306:3306"
La documentazione sui container di MariaDB descrive l’immagine ufficiale e i relativi tag di versione. Il riferimento alle variabili d’ambiente dell’immagine spiega le impostazioni MARIADB_*.
Le variabili di inizializzazione contano solo con una directory dati vuota
Se /var/lib/mysql contiene già un database, modificare MARIADB_ROOT_PASSWORD o MARIADB_DATABASE in Compose non ricrea l’istanza esistente. Questo è un motivo comune per cui si pensa che “la nuova password non abbia funzionato”.
La guida hardware di MariaDB tratta il dimensionamento e la posizione dello storage.
Non esporre la porta 3306 su Internet
Se solo i container locali devono usare MariaDB, mantienili sulla stessa rete Docker e ometti del tutto la porta dell’host. Se i client della LAN devono accedere al database, assoc**iala** solo dove necessario e crea utenti del database con ambiti ristretti per host e privilegi.
Usa Adminer per la gestione, non come database
Adminer è solo un’interfaccia web. Schema, utenti e dati risiedono in MariaDB. La guida hardware di Adminer è utile quando il database è già operativo.
Esegui il backup del database, non solo del file Compose
Un file Compose può ricreare il container. Non può ricreare i tuoi dati. Esegui il backup della directory persistente del database oppure usa dump logici, quindi verifica un ripristino prima di aggiornare alle versioni principali successive.
