Passare comandi mysql in un container MariaDB: differenze tra le versioni
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