Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist es möglich, zwei Instanzen von Docker-Containern auf einem MySQL-Datenbankcontainer auszuführen?

Hoffentlich ist eine dieser Interpretationen richtig.

Kann ich mehrere MySQL-Daemons in verschiedenen Containern ausführen, die sich alle ein einziges Datenvolumen teilen?

Nein, jeder Daemon benötigt ein separates Datenverzeichnis, um Konflikte zu vermeiden. Sie könnten mehrere Datenverzeichnisse auf dem gemeinsam genutzten Volume ablegen, aber das Ergebnis sind mehrere vollständig separate Datenbanken. - Quelle

Kann ich mehrere Container ausführen, die sich verbinden zu einem einzelnen MySQL-Datenbankcontainer?

Ja, es ist möglich, mehreren Containern zu erlauben, sich mit einem einzelnen Datenbankcontainer zu verbinden, aber nicht durch die gemeinsame Nutzung von Volumes. Container Z führt den mysql-Daemon aus und andere Container können sich über TCP-Sockets mit ihm verbinden. Das offizielle MySQL-Repo Readme enthält Schritte zum Einstieg:

Starten Sie zuerst Container Z.

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

Führen Sie dann andere Container aus, die Sie mit der Datenbank verbinden möchten, etwa so:

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

Docs für den --link Flagge . Beim Container-Linking wird ein Hostfile-Eintrag für den Link-Alias ​​hinzugefügt, sodass Sie die Adresse nicht manuell finden müssen. Die Datenbankkonfiguration Ihres Webservers würde in etwa so aussehen

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

Ich hoffe, das hilft.