Sono stato in grado di raggiungere l'obiettivo di aggiungere un database all'immagine tutum-docker-mysql attenendo alla seguente procedura.
git clone https://github.com/tutumcloud/tutum-docker-mysql.git
cd tutum-docker-mysql
vi create_mysql_admin_user.sh
All'interno di tale file .sh ho aggiunto una linea, proprio sotto le due linee "mysql -uroot" che sono già lì. Ho semplicemente aggiunto:
mysql -uroot -e "create database test;"
Dopo aver modificato il file .sh, ho semplicemente creato l'immagine della finestra mobile.
docker build -t tutum/mysql .
Dopo che l'immagine finestra mobile è stato costruito, ho potuto correre con qualcosa di simile:
docker run -d -p 3307:3306 tutum/mysql
Una volta che il contenitore è in esecuzione, è necessario conoscere la password da utilizzare e l'indirizzo IP del contenitore . Per ottenere la password è sufficiente fare
docker logs 2976a81f1a9b19787d9bde893c831b7e6586d7c8391ccd222ad29b02c282d896
Ma naturalmente utilizzare l'ID del contenitore, che è stato restituito dal comando "Esegui finestra mobile" di cui sopra. Ora che hai la password, hai bisogno dell'indirizzo ip. Lo capisco facendo.
docker inspect 2976a81f1a9b19787d9bde893c831b7e6586d7c8391ccd222ad29b02c282d896
E guardando l'indirizzo "Gateway". Con la password e l'indirizzo ip sono stato in grado di fare questo comando mysql da OUTSIDE del container.
mysql -uadmin -pJcM5FCphMOp4 -h172.17.42.1 -P3307
Dove l'indirizzo IP e la password sono i valori ottenuti dai precedenti due comandi di finestra mobile. Dopo che il comando è stato eseguito, posso quindi inviare un comando "mostra database" con i seguenti risultati.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql>
Ho combattuto per un po 'provandolo modificando il Dockerfile. Penso che potrebbe essere possibile, ma dopo un po 'ho trovato la soluzione di cui sopra molto più veloce e semplice.
Cosa succede quando si tenta questo? – Behe
ho provato alcuni comandi e ho riscontrato errori di diff, ho provato mysql -uroot "create database test" e l'errore è: ERROR 2002 (HY000): impossibile connettersi al server MySQL locale tramite socket '/ var/run/mysqld /mysqld.sock '(2) – Mohammad
Ha anche provato mysqld -uroot -p "" "crea test database", e l'errore è: 140710 10:12:28 [Avvertimento] L'uso del prefisso opzione unico key_buffer invece di key_buffer_size è deprecato e essere rimosso in una versione futura. Si prega di utilizzare il nome completo invece. – Mohammad