Setup & configure MySQL docker container

In this post, We are deploying a container of MySQL that saves the data into a host folder. Here we will able to manage a persistent database with a shared volume.

Step 1: Search official MySQL Container Image

user search through subcommand and find available MySQL official images from remote or local registries. Below command filter only official image of MySQL database. we got two results one MySQL and another one MariaDB.

   #  search --filter is-official=true MySQL 

Step 2:Download official MySQL Container Image

After search the image, you can use pull to download it. When using the pull subcommand, docker fetches the image and saves it locally.

  #  pull mysql 

After pulling the image stores images locally and you can list them through below command .

  #  images 

Step 3: Preparing Persistent Storage to MySQL Container

4. Creating a directory on-base host Operating system. Setting up default ownership and group ownership uid and gid of MySQL user, which is default 27 because in running container processes much be writable files to the directory.

  # mkdir /var/mysqldb 
# chown -R 27:27 /var/dbfiles 

Step 4 :Temporary Run MySQL container for Extra Variable

Before running or deploying this downloaded container image. I am going to run this container image for testing purposes, after starting the container with detaching mode option MySQL container stopped or existed because the Mysql container always needs some extra parameter. so after this we can see logs of that container image, the logs will show the MySQL container needs some extra parameter. I showed in the below screenshot. Below commands, I had used to run and check logs.

#  run -d --name continer_name  MySQL
# docker ps -a 
# docker logs continer_name 
# docker rm continer_name 

Step 5: Deploying Container with Persistent storage

This command mounts the host /var/mysqldb directory in the container /var/lib/mysql/data directory. The /var/lib/mysql/data is the directory where the MySQL database stores the data.

  Syntax : #  run -d --name [container_name] -v host_folder:container_mysql_database_storefolder -e MYSQL_ROOT_PASSWORD=password image_name:tag 

-e MYSQL_ROOT_PASSWORD : variable is having the mysql server root password , so it should be complex password.

Verify that the /var/mysqldb directory contains mysql data of container.

Step 6: Access MySQL Container & MySQL server

Now access the shell of running mysql container through below command

 # docker exec -it [container_name] /bin/bash 

Go into the container through above command and after that access the mysql server through below command

 # mysql -u root -p 

Now you will be able to create users , databases , assigning privilege as on regular mysql server . Hope you enjoy container services.

About Sachin Gupta

I am a professional freelance contributor and founder of tech transit. Love to write and lover of education, culture, and community. I have been using it, setting, supporting, and maintaining it since 2009.Linux rocks!

Have any Question or Comment?

Leave a Reply

Your email address will not be published.