Sign inSign up

rightctrl/mariadb

By rightctrl

•Updated over 8 years ago

Mariadb with Galera support

Image
2

1M+

rightctrl/mariadb repository overview

⁠MariaDB

⁠Docker mariadb with cluster MariaDB Dockerfile

Based on CentOS7 original mariadb Dockerfile, based on Stephen Tweedie's mariadb Dockerfile...

This repo contains a recipe for making Docker container for mariadb on CentOS7.

⁠Setup

Check your Docker version

# docker version

Perform the build

# docker build --rm --tag <yourname>/mariadb55 .

Check the image out.

# docker images

⁠Launchin Mariadb with docker-compose

version: '2'
services:
  mariadb:
    image: rightctrl/mariadb:10.1
    #image: mariadb:10.1
    restart: always
#    command: mysqld --innodb-buffer-pool-size=20M

#    volumes:
#      - "./mariadb:/var/lib/mysql:rw"
#      - "./conf:/etc/mysql"
    environment:
#      - "MYSQL_DATABASE=my_db_name"
#      - "MYSQL_USER=my_db_user"
#      - "MYSQL_PASSWORD=my_db_user_passwd"
      - "MYSQL_ROOT_PASSWORD=123456"
      - "WSREP_CLUSTER_ADDRESS=gcomm://192.168.11.253,192.168.11.7,192.168.11.26"
#      - "WSREP_PROVIDER_OPTIONS=ist.recv_addr=192.168.11.253"
      - "WSREP_NODE_NAME=db1"
      - "WSREP_NODE_ADDRESS=192.168.11.253"
#      - "WSREP_SST_AUTH"
      - "WSREP_SST_METHOD=rsync"
    ports:
      - "3306:3306"
      - "4567:4567"
      - "4568:4568"
      - "4444:4444"
    mem_limit: 3g
cpuset: 0,1

⁠Launching MariaDB

# docker run --name=mariadb -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<password> <yourname>/mariadb

To use a separate data volume for /var/lib/mysql (recommended, to allow image update without losing database contents):

Create a data volume container: (it doesn't matter what image you use here, we'll never run this container again; it's just here to reference the data volume)

# docker run --name=mariadb-data -v /var/lib/mysql <yourname>/mariadb55 true

And now create the daemonized mariadb container:

# docker run --name=mariadb -d -p 3306:3306 --volumes-from=mariadb-data -e MYSQL_ROOT_PASSWORD=<password> <yourname>/mariadb55

You could also create an additional database by passing MYSQL_DATABASE and/or create an additional user passing MYSQL_USER to the container. You can specify database character set and/or collation by specifying MYSQL_CHARSET and/or MYSQL_COLLATION!

⁠Using your MariaDB container

Keep in mind the initial password set for mariadb is: mysqlPassword. Change it now:

# mysqladmin --protocol=tcp -u testdb -p<password> password myNewPass

Connecting to mariadb:

# mysql --protocol=tcp -utestdb -pmyNewPass

Create a sample table:

\> CREATE TABLE test (name VARCHAR(10), owner VARCHAR(10),
    -> species VARCHAR(10), birth DATE, death DATE);

Tag summary

Content type

Image

Digest

Size

128.9 MB

Last updated

over 8 years ago

docker pull rightctrl/mariadb:10.1