Docker MariaDB Container ใช้งาน my.cnf

Docker MariaDB Container ใช้งาน my.cnf

ในตอนที่แล้วผมนำเสนอการสร้าง container ของ MariaDB โดยที่ สตาร์ทขึ้นมาโดยไม่มี my.cnf ก็เหมือนกับ ซื้อรถมาแล้วไม่ได้แต่ง ซึ่งทำให้ไม่สามารถใช้งาน MariaDB ได้เต็มประสิทธิภาพ หรือใช้งานได้แต่ไม่สมบูรณ์แบบ สำหรับตอนนี้มาดูกันครับถ้าเรามี my.cnf อยู่แล้ว เราจะให้ MariaDB container นำ my.cnf นั้นไปใช้งานได้อย่างไร มาดูกันครับ

ตัวอย่างคำสั่ง

docker run --name some-mariadb -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:tag

ผมได้เอา my.cnf เอาไว้ที่ /data/conf.d

[root@docker-test conf.d]# pwd
/data/my.cnf.d
[root@docker-test conf.d]# ls
my.cnf
[root@docker-test ~]# docker run --name mariadb10.1_custom  -v  /data/conf.d:/etc/mysql/conf.d  -e  MYSQL_ROOT_PASSWORD=123456 -d mariadb:10.1
09e241a351f83f1b0356d4aae5e8880b2e11ef5879955b50cc6d7092f289cc17
[root@docker-test ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
09e241a351f8        mariadb:10.1        "docker-entrypoint.sh"   15 seconds ago      Up 11 seconds       3306/tcp            mariadb10.1_custom
[root@docker-test my.cnf.d]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
3ffcb3a408c7        mariadb:10.1        "docker-entrypoint.sh"   48 seconds ago      Up 44 seconds       3306/tcp            maridb10.1_cnfcustom

เข้าใช้งาน container ผ่าย bash shell

[root@docker-test data]# docker exec -it mariadb10.1_custom bash
root@ea9bce5b82d1:/# mysql -u root -p123456                                                                                                
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.19-MariaDB-1~jessie mariadb.org binary distribution

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql-docker1> 

ก็จะสามารถทำให้ MariaDB container  ใช้งาน my.cnf ได้     แล้วรู้ได้ยังไงว่า mariadb container นี้ใช้งาน my.cnf นั้นแล้ว

ผมรู้ได้เพราะผมเขียนคำสั่งให้แสดง prompt ของ mariadb เอาไว้ใน my.cnf

[mysql]
prompt=mysql-docker1> \  ## MySQL Prompt

เป็นอันว่าผ่านไปได้อีก 1 ด่าน สามารถทำให้  mariadb container อ่าน my.cnf ได้  แต่มีข้อแม้ว่า ต้องเป็น my.cnf ที่ใช้กับ Linux Debian นะครับ เพราะ image ของ mariadb ตัวนี้ทำมาจาก Debian

อ้างอิง

Loading

Leave a Comment