Förhoppningsvis är en av dessa tolkningar korrekt.
Kan jag köra flera mysql-demoner i olika behållare som alla delar en enda datavolym?
Nej, varje demon behöver en separat datakatalog för att undvika konflikter. Du kan lägga flera datakataloger i den delade volymen, men resultatet av det är flera helt separata databaser. - källa
Kan jag köra flera behållare som ansluter till en enda mysql-databasbehållare?
Ja, det är möjligt att tillåta flera behållare att ansluta till en enda databasbehållare, men inte genom att dela volymer. Container Z kommer att köra mysql-demonen och andra behållare kan ansluta till den via tcp-sockets. Den officiella mysql-repo readme har steg för att komma igång:
Starta först Container Z.
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql
Kör sedan andra behållare som du vill koppla till databasen med något i stil med detta:
docker run --name webservera --link some-mysql:mysql -d application-that-uses-mysql
Dokument för --link
flagga
. Containerlänkning lägger till en värdfilpost för länkaliaset så att du inte behöver hitta adressen manuellt. Din webbservers databaskonfiguration skulle se ut ungefär så här
jdbc:mysql://address=(protocol=tcp)(host=mysql)(port=3306)(user=root)(password=mysecretpassword)
Jag hoppas att detta hjälper.