Udało mi się osiągnąć cel polegający na dodaniu bazy danych do obrazu tutum-docker-mysql, wykonując następujące czynności.
git clone https://github.com/tutumcloud/tutum-docker-mysql.git
cd tutum-docker-mysql
vi create_mysql_admin_user.sh
Wewnątrz tego pliku .sh dodałem linię, tuż poniżej „mysql” -uroot dwóch linii, które już istnieją. Po prostu dodałem:
mysql -uroot -e "create database test;"
Po tej zmianie do pliku .sh, po prostu zbudowałem obraz doka.
docker build -t tutum/mysql .
Po zdjęciu doker został zbudowany, nie mogłem uruchomić go z czymś takim:
docker run -d -p 3307:3306 tutum/mysql
Gdy pojemnik jest uruchomiony, trzeba znać hasło do używania i adres IP pojemnika . Aby otrzymać hasło, które po prostu zrobić
docker logs 2976a81f1a9b19787d9bde893c831b7e6586d7c8391ccd222ad29b02c282d896
Ale oczywiście użyć identyfikator kontenera, który został zwrócony z polecenia „run doker” powyżej. Teraz, gdy masz już hasło, potrzebujesz adresu IP. Rozumiem to przez działanie.
docker inspect 2976a81f1a9b19787d9bde893c831b7e6586d7c8391ccd222ad29b02c282d896
I patrząc na adres "Gateway". Za pomocą hasła i adresu IP mogłem wtedy wykonać polecenie mysql z ZEWNĄTRZ kontenera.
mysql -uadmin -pJcM5FCphMOp4 -h172.17.42.1 -P3307
Gdzie adres ip i hasło są wartościami uzyskanymi z dwóch poprzednich poleceń dokowania. Po uruchomieniu tego polecenia mogę wydać polecenie "pokaż bazy danych" z następującymi wynikami.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql>
Walczyłem przez chwilę, próbując go modyfikując plik Docker. Myślę, że to może być możliwe, ale po pewnym czasie znalazłem powyższe rozwiązanie dużo szybciej i prościej.
Co dzieje się podczas próby to? – Behe
Próbowałem kilku poleceń i otrzymałem błędy diff, próbowałem mysql -uroot "create database test", a błąd brzmi: ERROR 2002 (HY000): Nie można połączyć się z lokalnym serwerem MySQL poprzez gniazdo '/ var/run/mysqld /mysqld.sock '(2) – Mohammad
Próbowałem również mysqld -uroot -p "" "create database test", a błąd jest następujący: 140710 10:12:28 [Ostrzeżenie] Używanie unikalnego prefiksu opcji key_buffer zamiast key_buffer_size jest przestarzałe i będzie zostać usunięte w przyszłej wersji. Zamiast tego użyj pełnej nazwy. – Mohammad