arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

MariaDB Container Cheat Sheet

A concise reference of common Docker commands and environment variables used with MariaDB containers.

hashtag
Get the images

Images can be found on MariaDB Docker Hubarrow-up-right. To get the list of images, run this command:

$ docker images -a

hashtag
Create the network

It is good practice to create the container network and attach the container to the network.

hashtag
Start The Container With Server Options

To start the container in the background with the MariaDB server image, run:

Additionally, are also provided.

hashtag
Get the list of running containers

Note: Specify the flag -a in case you want to see all containers

hashtag
Start the client from the container

To start the mariadb client inside the created container and run specific commands, run the following:

hashtag
Inspect logs of a container

In the logs you can find status information about the server, plugins, generated passwords, errors and so on.

hashtag
Restart the container

hashtag
Run commands within the container

hashtag
Use a volume to specify configuration options

One can specify custom through the /etc/mysql/conf.d volume during container startup.

hashtag
Use a volume to specify grants during container start

User created with the environment variables has full grants only to the MARIADB_DATABASE. In order to override those grants, one can specify grants to a user, or execute any SQL statements from host file to docker-entrypoint-initdb.d. In the local_init_dir directory we can find the file, created like this:

hashtag
See Also

This page is licensed: CC BY-SA / Gnu FDL

environment variables
configuration files
Installing and using MariaDB via Docker
spinner
$ docker network create mynetwork
$ docker run --rm --detach \
  --env MARIADB_ROOT_PASSWORD=sosecret \
  --network mynetwork \
  --name mariadb-server \
  mariadb:latest
$ docker ps
CONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS          PORTS      NAMES
ad374ec8a272   mariadb:latest   "docker-entrypoint.s…"   3 seconds ago    Up 1 second     3306/tcp   mariadb-server
$ docker exec -it mariadb-server mariadb -psosecret -e "SHOW PLUGINS"
$ docker logs mariadb-server
$ docker restart mariadb-server
$ docker exec -it mariadb-server bash
$ docker run --detach --env MARIADB_USER=anel \
  --env MARIADB_PASSWORD=anel \
  --env MARIADB_DATABASE=my_db \
  --env MARIADB_RANDOM_ROOT_PASSWORD=1 \
  --volume $PWD/my_container_config:/etc/mysql/conf.d:z \
  --network mynetwork \
  --name mariadb-server1 \
   mariadb:latest
$ docker run --detach --env MARIADB_USER=anel\
  --env MARIADB_PASSWORD=anel \
  --env MARIADB_DATABASE=my_db \
  --env MARIADB_RANDOM_ROOT_PASSWORD=1 \
  --volume $PWD/my_init_db:/docker-entrypoint-initdb.d \
  --network mynetwork \
  --name mariadb-server1 \
   mariadb:latest
$ echo "GRANT ALL PRIVILEGES ON *.* TO anel;" > my_init_db/my_grants.sql