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

Come eseguire MySQL in Docker Container:una guida semplice e facile da seguire

Questa guida spiega passo dopo passo come configurare un nuovo server MySQL in esecuzione nel contenitore Docker in pochi minuti.

Una delle grandi cose di Docker è il modo in cui puoi utilizzarlo rapidamente per provare le applicazioni senza installarlo direttamente sul tuo computer. Ad esempio, puoi utilizzare Docker per eseguire un database in un container come server remoto e testare come la tua applicazione interagisce con esso.

L'esecuzione di MySQL con i contenitori Docker è un meccanismo ampiamente utilizzato. MySQL è uno dei database più popolari utilizzati con i container Docker.

Per creare MySQL come contenitore Docker, la macchina host dovrebbe avere Docker installato. Se non lo hai installato, ecco una guida passo passo sull'installazione di Docker in Ubuntu.

1. Estrarre l'immagine Docker MySQL

La prima cosa che devi fare per creare e testare il server MySQL in Docker è estrarre un'immagine ufficiale di MySQL dall'hub Docker.

Puoi scaricare una versione specifica come 8.0, 5.7, 5.6 o optare per l'ultima versione come mostrato nel comando seguente:

sudo docker pull mysql:latest

Se desideri una versione particolare di MySQL, sostituisci la latest   con il numero di versione.

Puoi eseguire le docker images comando per visualizzare un elenco di immagini Docker che hai estratto da Docker Hub.

sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    2fe463762680   13 hours ago   514MB

Come puoi vedere, l'immagine MySQL è ora disponibile per il nostro Docker installato localmente.

2. Impostazione di un volume Docker

Come sai, i container Docker sono, in linea di principio, temporanei e qualsiasi dato o configurazione dovrebbe andare perduta se il container viene eliminato.

I volumi Docker, tuttavia, forniscono un meccanismo per rendere persistenti i dati creati all'interno di un container Docker. Pertanto, sono il meccanismo preferito di Docker per archiviare i dati persistenti dei contenitori Docker.

MySQL archivia i suoi file di dati in /var/lib/mysql directory. Quindi, prima della distribuzione, dovrai configurare un volume Docker per rendere persistente il tuo database. In caso contrario, i tuoi dati andranno persi al riavvio del contenitore.

Creiamo un nuovo volume e lo chiamiamo mysql-data . Verrà utilizzato per memorizzare tutte le informazioni del database.

sudo docker volume create mysql-data

Puoi elencare tutti i volumi noti a Docker eseguendo il comando seguente:

sudo docker volume ls
DRIVER    VOLUME NAME
local     mysql-data

Come puoi vedere, il nostro volume Docker appena creato chiamato mysql-data è qui ed è pronto per servire i dati. Può quindi essere collegato a un contenitore MySQL appena creato.

3. Esegui un MySQL Docker Container

Ora che hai un'immagine MySQL Docker sulla tua macchina e un volume per rendere persistenti i dati, puoi distribuire un container. È inoltre necessario impostare una password per l'utente root MySQL utilizzando MYSQL_ROOT_PASSWORD variabile di ambiente.

Ora eseguiamo il contenitore:

sudo docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql

Questo è tutto. Verrà avviata l'ultima versione dell'istanza MySQL, che può essere accessibile in remoto da qualsiasi luogo con la password di root specificata.

Per rendere le cose più trasparenti, analizziamo questa sintassi. Innanzitutto, ecco cosa significa ogni parametro in quel comando:

  • -d eseguirà questo contenitore in modalità separata in modo che venga eseguito in background.
  • --name assegna il nome mysql-server alla tua istanza del contenitore. Se non lo specifichi, Docker genererà un nome casuale.
  • -p collegherà la porta del contenitore MySQL 3306 alla stessa porta sul tuo computer host. Potrai connetterti a 127.0.0.1 sulla porta 3306 utilizzando client MySQL (mysql ) in esecuzione sul tuo host.
  • -v l'opzione associa quella cartella di dati all'interno del volume del contenitore (/var/lib/mysql ) al volume Docker locale (mysql-data ) che hai creato nel passaggio precedente.
  • -e imposta una variabile di ambiente. In questo caso, la password di root di MySQL.
  • mysql è il nome dell'immagine che utilizziamo per creare il contenitore.

Puoi verificare se il container è in esecuzione elencando i container in esecuzione:

sudo docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
0fc229e3df77   mysql     "docker-entrypoint.s…"   37 minutes ago   Up 34 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql-server

4. Connessione al contenitore MySQL

Puoi ottenere una shell MySQL interattiva collegandola al container ed eseguendo mysql comando. Ciò fornisce l'interfaccia a riga di comando completa di MySQL per utilizzare tutti i comandi ei flag familiari.

sudo docker exec -it mysql-server mysql -u root -p

Puoi anche connetterti all'istanza MySQL Docker utilizzando mysql client se lo hai preinstallato sul tuo host.

Fai attenzione perché per impostazione predefinita, il client mysql tenta di connettersi utilizzando un socket UNIX quando gli dici di connettersi a localhost . Quindi usa 127.0.0.1 e non localhost .

mysql -u root -h 127.0.0.1 -p

Naturalmente, puoi anche utilizzare un client basato su GUI come MySQL Workbench per connetterti al database. Ad esempio, in MySQL Workbench per "Hostname", specifica l'indirizzo IP della macchina su cui hai avviato Docker Container.

Ovviamente, negli esempi mostrati sopra per un nome host, puoi usare l'indirizzo IP della macchina su cui sta lavorando il contenitore Docker MySQL invece di 127.0.0.1.

Puoi trovare questo indirizzo eseguendo ifconfig comando senza argomenti.

L'utilizzo dell'indirizzo IP della macchina consente di accedere al server MySQL da remoto.

5. Arresta, avvia e riavvia MySQL Container

Questo comando si fermerà temporaneamente il contenitore MySQL in esecuzione (e può essere ripreso/riavviato in seguito):

sudo docker stop mysql-server

Per iniziare il contenitore MySQL, esegui:

sudo docker start mysql-server

Il comando seguente viene utilizzato per riavviare il contenitore MySQL in esecuzione:

sudo docker restart mysql-server

Conclusione

Come puoi vedere, eseguire MySQL all'interno di Docker è molto più rapido e semplice rispetto all'installazione di MySQL Server in locale. Tuttavia, ci sono molte altre cose da considerare se intendi utilizzare MySQL su Docker per qualsiasi cosa oltre al test.

Puoi consultare la pagina MySQL su Docker Hub e il manuale ufficiale MySQL sull'argomento per ulteriori informazioni.

Fatemi sapere se avete domande o suggerimenti. Sarò felice di seguirti.


Docker
  1. Come eseguire Nginx in un contenitore Docker:una guida passo passo

  2. Come installare WordPress con Docker, una guida facile da seguire

  3. Come eseguire un programma all'interno di un contenitore Docker?

  4. Come eseguire MySQL in un contenitore Docker

  5. Come eseguire un comando su un contenitore Docker in esecuzione

Come eseguire SSH in un contenitore Docker ed eseguire comandi

Come eseguire NGINX Inside Docker (per un ridimensionamento automatico semplice)

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come creare volumi Docker su Windows in modo semplice

Come eseguire i contenitori Docker