GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Distribuire un'installazione di MariaDB di Production Docker

Se prevedi di installare MariaDB sul tuo sistema, potresti voler isolarlo dal resto del sistema in modo da non rompere nulla. Certo, puoi utilizzare una macchina virtuale, ma richiederebbe molte risorse poiché dovrai installare un intero sistema sopra un altro. Allora perché non distribuire un Docker per MariaDB?

Se hai un hardware limitato, non è un problema, Docker può aiutarti! Docker è una soluzione di virtualizzazione leggera. E in questo tutorial imparerai a distribuire un Docker di produzione per l'installazione del server MariaDB all'interno di un container Docker con un minore utilizzo di risorse.

Continua a leggere e non sprecare mai più le tue risorse!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri seguire, assicurati di avere quanto segue.

  • Una macchina Linux:questa demo utilizza Ubuntu 20.04 LTS, ma qualsiasi distribuzione Linux funzionerà.
  • Docker installato sulla tua macchina.
  • Un utente non root con privilegi sudo.

Lavorare con Immagine Docker MariaDB

Il modo migliore per iniziare a lavorare con MariaDB sulla tua macchina è utilizzare l'immagine Docker ufficiale per MariaDB. L'immagine contiene un'installazione dell'ultima versione stabile di MariaDB, oltre ad alcuni script per aiutarti a gestire il container.

1. Esegui apt update comando seguente per assicurarti che il tuo sistema sia aggiornato. Questo comando recupera gli ultimi elenchi di pacchetti dai repository di Ubuntu e installa tutti i pacchetti disponibili.

sudo apt update -y

2. Quindi, esegui systemctl comando seguente per avviare la docker servizio.

sudo systemctl start docker

L'avvio del servizio Docker non fornisce un output. Ma se esegui comandi relativi alla finestra mobile mentre la finestra mobile non è in esecuzione, riceverai il seguente errore.

3. Esegui lo docker status comando seguente per assicurarsi che la docker il servizio è in esecuzione.

 sudo service docker status 

Di seguito puoi vedere che il servizio Docker è attivo (in esecuzione).

4. Infine, esegui gpasswd comando seguente per aggiungere il tuo attuale utente alla docker gruppo. Ciò consente all'utente di eseguire docker comandi.

sudo gpasswd -a "${USER}" docker

Aggiunta dell'utente corrente alla docker group ti salva dal seguente errore durante l'esecuzione di un comando Docker.

5. Esegui la docker search di seguito comando per cercare l'immagine MariaDB. Questo comando cerca nel Docker Hub (set ufficiale di repository) le immagini che corrispondono a mariadb e restituisce i risultati.

sudo docker search mariadb

Seleziona qualsiasi immagine che desideri utilizzare per installare MariaDB. Questa demo utilizza l'immagine ufficiale denominata mariadb perché è ben mantenuta.

La colonna UFFICIALE mostra uno stato OK se un'immagine è ufficiale. Se l'immagine non ha lo stato OK, l'immagine viene fornita da uno sviluppatore della comunità. In tal caso, dovrai contattare lo sviluppatore in caso di problemi con l'immagine.

6. Ora esegui il docker pull comando per scaricare l'immagine che hai scelto (nel passaggio cinque) dal repository Docker. Questo comando scarica (pull ) l'immagine selezionata dal suo repository ufficiale e la salva sul tuo computer locale.

sudo docker pull mariadb

Al termine del comando, otterrai l'ultima versione stabile dell'immagine MariaDB sul tuo server, come mostrato di seguito.

Se preferisci installare versioni precedenti, puoi utilizzare i tag disponibili per quell'immagine. Vai a Tag/i immagine colonne in dockerhub per visualizzare tutte le versioni, quindi eseguire il comando docker pull e specificare la versione esatta, come mostrato di seguito. sudo docker pull mariadb:10.2

7. Infine, esegui le docker images comando per elencare tutte le immagini presenti sul tuo server. A questo punto, dovresti avere un'immagine Docker MariaDB valida sul tuo server.

sudo docker images

Di seguito, puoi vedere che mariadb è il nome dell'immagine della finestra mobile con un tag come più recente.

Creazione di un contenitore MariaDB per eseguire un server MariaDB locale

Ora che hai l'immagine MariaDB sul tuo server, puoi eseguire un container usando quell'immagine. Un container è un ambiente di runtime isolato, controllato dalle risorse e portatile che viene eseguito su un sistema operativo.

Devi prima creare un nuovo opt/mariadb/backup directory sul tuo server per memorizzare il file di backup che creerai in questa demo. Il backup dei dati nel tuo ambiente di produzione è fondamentale prima di apportare modifiche se qualcosa va storto.

Quando modifichi il volume interno di un contenitore, tale modifica viene copiata nella directory host mappata. Quindi, per conservare una copia di backup di tutti i dati del contenitore, creerai il volume sul server locale.

1. Esegui il comando seguente per creare opt/mariadb/backup directory. Il -p L'opzione assicura che la directory padre esista prima di creare questa directory.

Se una delle directory principali nel percorso non esiste, il comando avrà esito negativo.

sudo mkdir -p opt/mariadb/backup

2. Quindi, esegui docker run comando seguente per creare un contenitore Docker da mariadb Immagine. Questo comando esegue quanto segue:

  • Mappe (-v ) la directory predefinita per contenere i dati di MariaDB (/var/lib/mysql ) nel tuo container Docker nella tua directory host (/opt/mariadb/backup ).
  • Dichiara la variabile d'ambiente MariaDB (-e ) MYSQL_ROOT_PASSWORD per conservare la password di root per il server MariaDB. Assicurati di sostituire ata123 con la tua password sicura.
  • Dice a Docker di avviare il contenitore in modalità scollegata (-d ), quindi il contenitore viene eseguito in background. In questo modo è possibile abbandonare la sessione corrente e continuare a lavorare mentre questo contenitore viene eseguito in background. In caso contrario, riceverai un prompt vuoto e dovrai terminare il contenitore in esecuzione.
  • Specifica il nome del contenitore (--name mariadbata ) creare. Puoi sostituire mariadbata con il tuo nome univoco preferito.
  • Espone la porta MariaDB predefinita 3306 alla macchina host (-p 3306:3306 ) (dove il servizio MariaDB ascolta le tue connessioni client). Nel caso del server di produzione, mapperai la porta predefinita sulla porta di produzione. Ma puoi sostituire 3306 con un altro numero di porta di produzione.
sudo docker run --name mariadbata -p 3306:3306 -v /opt/mariadb/backup:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ata123 -d mariadb

A questo punto, il contenitore viene creato e funziona in background, ma non puoi mai esserne troppo sicuro. Quindi verificherai il contenitore nel passaggio successivo.

3. Esegui docker ps comando per verificare se il tuo contenitore Docker è attivo o meno.

sudo docker ps

Di seguito puoi vedere che il container mariadbata è attivo da 7 minuti fa, in ascolto sulla porta 3306 su tutte le interfacce host. Puoi anche vedere l'ID (3a7fa779b559) del contenitore.

Puoi utilizzare questo ID univoco per connetterti al contenitore, elencare i contenitori, interrompere i contenitori o eliminare il contenitore.

4. Ora esegui docker exec comando seguente per verificare la versione del server MariaDB all'interno di mariadbata contenitore.

sudo docker exec -it mariadbata mysql -V

Al momento della scrittura, l'ultima versione di mariadb è 10.6.5, come mostrato di seguito, e la tua versione potrebbe essere diversa. Poiché MariaDB è un fork di MySQL, Docker ha utilizzato il client mysql come client predefinito per interagire con il servizio MariaDB mostrato di seguito.

5. Esegui il comando seguente per accedere alla shell MariaDB (/bin/bash ).

sudo docker exec -it mariadbata /bin/bash

Il prompt cambia dalla shell di Ubuntu alla shell MariaDB, come mostrato di seguito.

Puoi vedere sotto l'ID del contenitore (3a7fa779b559) che hai visto nel passaggio tre. La visualizzazione dell'ID del contenitore nel prompt indica che sei attualmente all'interno del contenitore mariadbata.

Quando sei all'interno del contenitore, puoi eseguire qualsiasi comando con il prefisso sudo poiché ora sei l'utente root di questo contenitore.

Ad esempio, puoi eseguire il comando apt update di seguito per aggiornare il database del pacchetto all'interno del contenitore senza il prefisso sudo.

apt update -y

6. Infine, esegui exit comando per uscire dalla shell MariaDB e tornare alla shell dell'host Ubuntu.

exit

Accesso a MariaDB Shell dal terminale host

È inoltre possibile accedere alla shell MariaDB direttamente dal terminale host installando il client MariaDB sull'host. Farlo è utile nelle situazioni in cui non vuoi passare ogni volta alla shell del contenitore.

1. Esegui apt install comando seguente per installare il client MariaDB sul tuo host Ubuntu.

sudo apt install -y mariadb-client

2. Quindi, esegui docker inspect comando seguente per trovare l'indirizzo IP del contenitore in esecuzione.

sudo docker inspect container-name | grep IPAddress

3. Ora esegui mysql comando seguente per connettersi all'istanza del database dal tuo host (-h ) con il tuo nome utente (root ) e password (-p ). Ricordati di sostituire host_ip con l'indirizzo IP del contenitore Docker in esecuzione.

sudo mysql -u root -p -h host_ip

4. Inserisci la password che hai impostato in precedenza (ata123 ) nel passaggio due quando richiesto e ti verrà presentato il prompt del client MariaDB, come mostrato di seguito.

È quindi possibile eseguire qualsiasi codice SQL necessario per eseguire sul server MariaDB.

5. Infine, esegui ls comando seguente per elencare i file di backup (opt/mariadb/backup ) del MariaDB Container.

ls -l opt/mariadb/backup

Di seguito vedrai un elenco di file simili. L'output indica che hai creato correttamente un backup del contenitore mariadbata. Se necessario, puoi copiare i file in un'altra posizione sul tuo host.

Arresto e rimozione del contenitore

Forse vuoi liberare risorse RAM o CPU. In tal caso, puoi arrestare il contenitore eseguendo docker stop comando e specificando l'ID del contenitore o il nome del contenitore.

1. Esegui uno dei comandi seguenti per arrestare un contenitore specifico.

# Stops Container by Container Name (mariadbata)
sudo docker stop mariadbata
# Stops Container by Container ID (3a7fa779b559)
sudo docker stop 3a7fa779b559

A questo punto, il container viene arrestato ma continuerà a vivere sul tuo host e i dati rimangono.

2. Ora esegui il docker ps comando seguente per elencare tutto (-a ) contenitori.

docker ps -a

Come puoi vedere di seguito, il contenitore viene ancora visualizzato ma è in uno stato Exited, che indica che il contenitore è stato arrestato.

3. Infine, esegui il comando seguente per rimuovere (rm ) il contenitore interrotto (mariadbata ). La possibilità di rimuovere un contenitore è utile quando forse l'immagine Docker non soddisfa i tuoi requisiti o vuoi semplicemente ricominciare da capo.

Nota che devi prima fermare il contenitore prima di rimuoverlo con il comando docker rm.

sudo docker rm mariadbata

Se preferisci rimuovere l'intero container con i suoi volumi di dati per salvare le tue risorse, aggiungi l'opzione -v con il comando sudo docker come quello qui sotto.

sudo docker rm -v mariadbata

Ora esegui nuovamente il comando docker ps di seguito per elencare tutti i contenitori per verificare che il contenitore sia stato completamente rimosso.

docker ps -a

Come vedi sotto, i mariadbata contenitore è andato insieme a tutti i suoi dati.

Conclusione

In questo tutorial, hai imparato a creare un contenitore Docker MariaDB sulla tua macchina host Ubuntu. Hai anche imparato a creare uno spazio di archiviazione persistente per i tuoi contenitori Docker utilizzando i contenitori del volume di dati per eseguire il backup dei dati del contenitore.

A questo punto, ora puoi creare e gestire il tuo container Docker MariaDB su Ubuntu.

Ora, perché non creare un flusso di lavoro CI/CD Buddy utilizzando un contenitore MariaDB Cocker come database con questa nuova conoscenza? O anche creare un servizio MariaDB per le tue applicazioni?


Docker
  1. Distribuisci WordPress su Docker usando Ansible

  2. Distribuisci Nextcloud su Docker utilizzando Ansible

  3. Terraform – Distribuisci Python Lambda (immagine contenitore)

  4. Estrarre il file dall'immagine Docker?

  5. Come distribuire microservizi con Docker

Docker:come usarlo in modo pratico - Parte 3

Una breve introduzione a Dockerfile

Come distribuire Pi-Hole su Debian 11

Che cos'è un manifesto di immagine Docker?

Come ridurre le dimensioni dell'immagine Docker nei contenitori Docker

Condivisione di immagini Docker su Docker Hub