Mysql
 sql >> Database >  >> RDS >> Mysql

È possibile eseguire due istanze di contenitori docker su un contenitore di database mysql?

Speriamo che una di queste interpretazioni sia corretta.

Posso eseguire più demoni mysql in contenitori diversi che condividono tutti un unico volume di dati?

No, ogni demone ha bisogno di una directory di dati separata per evitare conflitti. È possibile inserire più directory di dati nel volume condiviso, ma il risultato è più database completamente separati. - fonte

Posso eseguire più container che connettono in un singolo contenitore di database MySQL?

Sì, è possibile consentire a più contenitori di connettersi a un singolo contenitore di database, ma non condividendo i volumi. Il contenitore Z eseguirà il demone mysql e altri contenitori possono connettersi ad esso tramite socket TCP. Il repo ufficiale di mysql readme ha i passaggi per iniziare:

Per prima cosa avvia Container Z.

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql

Quindi esegui altri contenitori che desideri connettere al database con qualcosa di simile a questo:

docker run --name webservera --link some-mysql:mysql -d application-that-uses-mysql

Documenti per il --link bandiera . Il collegamento del contenitore aggiunge una voce del file host per l'alias del collegamento in modo da non dover trovare l'indirizzo manualmente. La configurazione del database del tuo server web sarebbe simile a questa

jdbc:mysql://address=(protocol=tcp)(host=mysql)(port=3306)(user=root)(password=mysecretpassword) 

Spero che questo aiuti.