I will get MariaDB and Phpmyadmin running in a docker container. I will reuse folder setup and all files from previous recipe - 02. Source files can be found here: in folder recipe-03 https://github.com/ikknd/docker-study 1. Modify docker-compose.yml file Here I do several things: create volume - . This is where all db data will be stored, even if container is restarted, data will be there. mariadb-data environment variable - sets root password for mariadb container. MYSQL_ROOT_PASSWORD: qwerty environment variable - adds "server" input field to phpmyadmin login page (this way you can use this phpmyadmin with an external MySQL DB, and not just this local setup) PMA_ARBITRARY=1 environment variable - told phpmyadmin how to connect to mariadb PMA_HOST=mariadb map ports for - this maps inner port 80 from inside the container, to port 8000 on my host machine phpmyadmin - 8000:80 " " - prevents container to start before other container, on which it depends depends_on 2. Go to /var/www/docker-study.loc/recipe-03/docker/ and execute: docker-compose up -d I can go to: - and still see phpinfo page myapp.loc/ - see phpmyadmin, I can login using root/qwerty credentials myapp.loc:8000 3. What if I need database to be up and running with some initial DB inside, and not empty? This can be achieved by modifying section with: mariadb command: "mysqld --init-file /data/application/init.sql" and volumes: - ./init.sql:/data/application/init.sql - is an existing DB dump. init.sql using volumes I copy this file to container's location /data/application/init.sql using " " command - I tell mysql to start and import init.sql mysqld --init-file 4. After I have DB running, how to export/import DB? To see list of containers and learn container id or name of mariadb container: docker container ls To import: docker exec -i docker_mariadb_1 mysql -uroot -pqwerty DB_NAME < your_local_db_dump.sql To export: docker exec -i docker_mariadb_1 mysqldump -uroot -pqwerty DB_NAME > your_local_db_dump.sql