Passare comandi mysql in un container MariaDB: differenze tra le versioni

Da ElettraWiki.
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 14: Riga 14:
* Container B (Applicazione)
* Container B (Applicazione)
I due container parlano tra di loro tramite la rete di Docker per cui A non ha bisogno di esporre alcuna porta di comunicazione, saremo costretti a trovare un'altra strada per parlare con il container A nel quale gira MariaDB.
I due container parlano tra di loro tramite la rete di Docker per cui A non ha bisogno di esporre alcuna porta di comunicazione, saremo costretti a trovare un'altra strada per parlare con il container A nel quale gira MariaDB.
La prima cosa da fare è scoprire su quale rete Docker parlano i due container, per fare questo useremo '''<code>docker network ls</code>'''
 
==Workaround==
La soluzione più pulita è utilizzare un container MariaDB solo come client, usare il network condiviso, e lanciare il comando direttamente. La prima cosa da fare è scoprire su quale rete Docker parlano i due container, per fare questo useremo '''<code>docker network ls</code>'''


<div id="atscreen">
<div id="atscreen">
Riga 28: Riga 30:
skid@server:~$
skid@server:~$
</div>
</div>
Tra le varie reti listate sappiamo che la rete che ci interessa risulta essere '''RETE_default'''
Assumendo che gli eventuali dati siano nella stessa directory del docker-compose.yml

Versione delle 17:22, 29 set 2025


Introduzione

Può capitare di dover impartire comandi con un client mysql per ottenere output o magari per un dump o un restore di un DB all'interno di un container che fornisce servizio DB tramite server MariaDB, sprovvisto di funzioni client.

Scenario

  • Container A (MariaDB)
  • Container B (Applicazione)

I due container parlano tra di loro tramite la rete di Docker per cui A non ha bisogno di esporre alcuna porta di comunicazione, saremo costretti a trovare un'altra strada per parlare con il container A nel quale gira MariaDB.

Workaround

La soluzione più pulita è utilizzare un container MariaDB solo come client, usare il network condiviso, e lanciare il comando direttamente. La prima cosa da fare è scoprire su quale rete Docker parlano i due container, per fare questo useremo docker network ls

skid@server:~$ docker network ls
NETWORK ID      NAME            DRIVER     SCOPE
864d33d040d4    bridge          bridge     local
0a9ae01920f8    AAAA_default    bridge     local
2f692e7703a0    BBBB_default    bridge     local
122a725b96cf    host            host       local
914723dd5823    RETE_default    bridge     local
a6638e80949f    CCCC_default    bridge     local
3511c1079a34    DDDD_default    bridge     local
skid@server:~$

Tra le varie reti listate sappiamo che la rete che ci interessa risulta essere RETE_default Assumendo che gli eventuali dati siano nella stessa directory del docker-compose.yml