Using MySQL and MongoDB in Docker
Step-by-step guide on how to use MySQL and MongoDB with Docker β from pulling images to creating and running containers.
π³ Using MySQL and MongoDB in Docker
This guide explains how to use MySQL and MongoDB databases inside Docker β including pulling official images, creating containers, and running them with proper configurations.
π§± What Happens When You Use Databases in Docker
When you use Docker for databases like MySQL or MongoDB:
- You run the database server inside a container.
- Your data is stored inside the container (or on a persistent volume).
- You can connect to it from your host machine or other containers.
- Itβs easy to start, stop, and manage multiple databases.
π¬ How to Use MySQL in Docker
βοΈ Step 1: Pull the MySQL Image
Use the official MySQL image from Docker Hub:
docker pull mysql:8.0π§© Step 2: Create and Run a MySQL Container
Run MySQL in a container with username, password, and database name:
docker run -d \
--name mysql-container \
-e MYSQL_ROOT_PASSWORD=root123 \
-e MYSQL_DATABASE=mydb \
-e MYSQL_USER=myuser \
-e MYSQL_PASSWORD=mypass123 \
-p 3306:3306 \
mysql:8.0Explanation:
--name mysql-containerβ container name.-eβ environment variables for root password, user, and database.-p 3306:3306β maps container port 3306 (MySQL default) to host.mysql:8.0β official MySQL image.
β Once itβs running, you can connect:
mysql -h localhost -P 3306 -u root -pπ§Ύ Step 3: Persist Data Using a Volume
To keep data safe even after container deletion:
docker run -d \
--name mysql-container \
-e MYSQL_ROOT_PASSWORD=root123 \
-v mysql_data:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0This stores MySQL data in a Docker-managed volume named mysql_data.
π§Ή Step 4: Manage MySQL Container
Stop container:
docker stop mysql-containerStart container:
docker start mysql-containerRemove container:
docker rm mysql-containerπ How to Use MongoDB in Docker
βοΈ Step 1: Pull the MongoDB Image
Get the latest official MongoDB image:
docker pull mongo:latestπ§© Step 2: Create and Run a MongoDB Container
Run MongoDB with a root username and password:
docker run -d \
--name mongodb-container \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin123 \
-p 27017:27017 \
mongo:latestExplanation:
MONGO_INITDB_ROOT_USERNAMEβ admin username.MONGO_INITDB_ROOT_PASSWORDβ admin password.-p 27017:27017β maps MongoDBβs default port to your local machine.
β Connect using Mongo shell or Compass:
mongo -u admin -p admin123 --authenticationDatabase adminπ§Ύ Step 3: Persist MongoDB Data
To keep MongoDB data even if the container is removed:
docker run -d \
--name mongodb-container \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin123 \
-v mongo_data:/data/db \
-p 27017:27017 \
mongo:latestThis saves MongoDB data in a Docker volume named mongo_data.
π§Ή Step 4: Manage MongoDB Container
Stop container:
docker stop mongodb-containerStart container:
docker start mongodb-containerRemove container:
docker rm mongodb-containerDocker Installation Guide for Ubuntu, Windows, and macOS
Step-by-step guide to install Docker on Ubuntu, Windows, and macOS, including user setup and verification.
Understanding Docker Volumes and Docker Networks
Simple explanation and practical guide on how to create and use Docker Volumes and Networks.