DbSchema | How to Run MySql in a Docker Container
In this article, we are going to see a step-by-step tutorial on how to run a MySQL database in a Docker Container.
1.Downloading a MySQL Server Docker Image
To download the image, open the command line and type this command:
docker pull mysql/mysql-server:latest
The :latest tag will download the latest version of MySQL. If you want do download a specific version, simply replace the
latest (Ex: mysql-server :8.0)
2.Start a MySQL Container in Docker
The next step is to run a container in Docker with the MySQL image. To do this, execute the next command:
docker run --name=mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:8.0
Let’s break down this command to understand it better:
- run - will run a new command in a new Docker container
- –name - will give a name to the new container created
- -p - will make the internal docker port visible outside docker
- -e - will change the root password. Here you can insert whatever password you want
- mysql/mysql-server:8.0 - will specify what image to run in the newly created container
To verify if the container was created and running, we can execute a docker ps (process status) command:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79742fe73ea9 mysql/mysql-server:8.0 "/entrypoint.sh mysq…" 24 hours ago Up 6 seconds (health: starting) 3306/tcp, 33060/tcp mysql1
This will list all the running containers as shown above.
In the status column of the result from above, you can see the (health: starting) mention. After the container is initialized
and ready to run, you will se it change to (healthy).
3.Connecting to MySQL Server from within the container
To connect, we will first run the next command:
docker exec -it mysql1 mysql -uroot -p
This will require the root password set in the previous step. After inserting the password, you should be inside MySQL
monitor.
mysql>
Type exit to leave the program.
4.Stopping the MySQL container
To stop the container, simply execute the next command:
docker stop mysql1
5.Deleting the MySQL container
To delete the container, make sure that it is stopped. Then, execute this command:
docker rm mysql1