Docker with MySQL
Running MySQL inside Docker allows you to run a database without installing MySQL directly on your machine — perfect for development and production.
Run MySQL Container (Quick Start)
docker run -d
--name my-mysql
-e MYSQL_ROOT_PASSWORD=secret
-e MYSQL_DATABASE=mydb
-e MYSQL_USER=dbuser
-e MYSQL_PASSWORD=dbpass
-p 3306:3306
-v mysql-data:/var/lib/mysql
mysql:8.0
| Variable | Description |
|---|---|
MYSQL_ROOT_PASSWORD | Root user password (required) |
MYSQL_DATABASE | Create a database on startup |
MYSQL_USER | Create a new user |
MYSQL_PASSWORD | Password for the new user |
Connect to MySQL Inside Container
docker exec -it my-mysql mysql -u root -p
# Enter password: secret
Inside MySQL shell:
SHOW DATABASES;
USE mydb;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100));
INSERT INTO users (name) VALUES ("Online Learner");
SELECT * FROM users;MySQL with Docker Compose
version: "3.9"
services:
mysql:
image: mysql:8.0
container_name: mysql-db
restart: always
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: myapp_db
MYSQL_USER: appuser
MYSQL_PASSWORD: apppass
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: secret
ports:
- "8081:80"
volumes:
mysql-data:
docker compose up -d
Access phpMyAdmin at http://localhost:8081 with username root and password secret.
Import a SQL File
docker cp database.sql my-mysql:/database.sql
docker exec -it my-mysql mysql -u root -p mydb < /database.sql
# Or pipe directly
docker exec -i my-mysql mysql -u root -psecret mydb < database.sqlExport (Dump) MySQL Database
docker exec my-mysql mysqldump -u root -psecret mydb > backup.sql
Summary
- Use
MYSQL_ROOT_PASSWORD,MYSQL_DATABASEenv vars to configure MySQL container - Mount a named volume to persist database data across container restarts
- Use phpMyAdmin container as a GUI for database management
- Import and export databases using
docker execandmysqldump
0
likes
Your Feedback
Help us improve by sharing your thoughts
Online Learner helps developers master programming, database concepts, interview preparation, and real-world implementation through structured learning paths.
Quick Links
© 2023 - 2026 OnlineLearner.in | All Rights Reserved.
