# pluie/alpine-mysql - [index][1] - [pluie/alpine][2] ( < 10 MB ) Alpine/3.4 - [pluie/alpine-apache][3] ( ~ 50 MB ) Apache/2.4.23 Php/5.6.24 - [pluie/alpine-apache-fpm][7] ( ~ 50 MB ) Apache/2.4.23 Php/5.6.24 Fpm - [pluie/alpine-symfony][6] ( ~ 82 MB ) Symfony2.8 or 3.1 - [pluie/alpine-apache-php7][8] ( ~ 50 MB ) Apache/2.4.25 Php/7.0.15 - [pluie/alpine-mysql][4] ( ~172 MB ) MariaDb/10.1.14 - [docker tips][5] Extend pluie/alpine with mysql (MariaDb/10.1.14) Project comes with various scripts to execute basic tasks such as : - dbcreate - dbdump - dbload If database directory is empty a root user is created at startup. Root access to database is only permit on localhost ## Image Size - image ~ 172 MB ## Image Volumes ``` /var/lib/mysql # mysql database directory /dump # directory to store various mysql scripts ``` ## ENV variables ``` MYSQL_DATABASE # create specified database at startup MYSQL_USER # create specified user at startup (and grant all rights to MYSQL_DATABASE) MYSQL_PASSWORD MYSQL_ROOT_PASSWORD # don't really need it. a random root password is generated if none ``` ### Inherit ENV variables ``` SHENV_CTX=LOCAL # LOCAL|INT|PROD change context bg color SHENV_NAME=Mysql # container name SHENV_COLOR=97 # ANSI EXTENDED COLOR CODE ``` ## Image Usage for example to start a new project : ``` $ cd /home/docker; $ mkdir -p db/{mysql,dump} $ docker run --name mysql \ -v $(pwd)/db/mysql:/var/lib/mysql \ -v $(pwd)/db/dump:/dump \ -e MYSQL_DATABASE=mybase \ -e MYSQL_USER=dev \ -e MYSQL_PASSWORD=mysql \ -it pluie/alpine-mysql ``` you don't need to expose your localhost mysql port. for example : ``` $ docker run --name pma -p 8080:80 --link mysql:db -d phpmyadmin/phpmyadmin ``` and phpmyadmin is accessible via http://localhost:8080/ and linked to your mysql container ### Existing Scripts create a new database with full rights to a user : ``` $ docker exec -it mysql /dbcreate mydbname myuser ``` load an export file in particular database : ``` $ docker exec -it mysql /dbload mydbname /dump/mydbname.init.sql ``` dump a database : ``` $ docker exec -it mysql /dbdump mydbname ``` ### More specific actions as user to connect to the mysql server as user from host : ``` mysql -h ipmysqlcontainer -udev -pmysql ``` to retriew container ip you can run first : ``` docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql ``` to connect to the mysql server as user from container : ``` $ docker exec -it mysql "mysql -udev -pmysql" ``` ### More specific actions as root to connect to the mysql server as root : ``` $ docker exec -it mysql "mysql -uroot" ``` to connect to the mysql container as root : ``` docker exec -it mysql bash ``` then ``` $ mysql -uroot mybase < /dump/init.mybase.sql $ mysqldump -uroot mybase > /dump/last.mybase.dump.sql ``` etc. ## Link Container to link this container to another, use the default docker behavior (as the example provide with phpmyadmin) : ``` docker run --name mycontainer --link mysql:db ... ``` [1]: https://github.com/pluie-org/docker-images [2]: https://github.com/pluie-org/docker-images/tree/master/pluie/alpine [3]: https://github.com/pluie-org/docker-images/tree/master/pluie/alpine-apache [4]: https://github.com/pluie-org/docker-images/tree/master/pluie/alpine-mysql [7]: https://github.com/pluie-org/docker-images/tree/master/pluie/alpine-apache-fpm [5]: https://github.com/pluie-org/docker-images/blob/master/DOCKER.md [6]: https://github.com/pluie-org/docker-images/tree/master/pluie/alpine-symfony [8]: https://github.com/pluie-org/docker-images/tree/master/pluie/7alpine-php