Docker: MariaDB Container

🐳 Docker และ MariaDB: คู่มือติดตั้ง Database Container ฉบับมืออาชีพ

ในโลกของการพัฒนาซอฟต์แวร์ การตั้งค่าสภาพแวดล้อม (Development Environment) ที่สม่ำเสมอและสามารถพกพาได้ (Portable) เป็นสิ่งสำคัญอย่างยิ่ง การใช้ Docker ทำให้เราสามารถรัน Database อย่าง MariaDB ได้อย่างง่ายดายโดยไม่ต้องติดตั้งบนเครื่อง Host โดยตรง บทความนี้จะนำเสนอขั้นตอนการสร้าง MariaDB Container ที่สมบูรณ์แบบด้วย Docker Compose ซึ่งเป็นมาตรฐานที่วิศวกรซอฟต์แวร์ระดับ Senior ควรทราบ

🛠️ ขั้นตอนที่ 1: การเตรียมสภาพแวดล้อมด้วย Docker Compose

เราจะใช้ Docker Compose เพื่อกำหนดบริการ (Service) ของ MariaDB Container ซึ่งจะช่วยให้การจัดการเครือข่ายและ Volume เป็นไปอย่างอัตโนมัติ

  1. สร้าง Directory: สร้างโฟลเดอร์สำหรับเก็บไฟล์ Configuration และข้อมูล (Volume) ของ Database ก่อน
    mkdir -p ./docker-mariadb-project
  2. สร้างไฟล์ YAML: ภายในโฟลเดอร์นั้น ให้สร้างไฟล์ชื่อ docker-compose.yml

ใส่เนื้อหาต่อไปนี้ลงในไฟล์ docker-compose.yml:

YAML

services:
  mariadb:
    container_name: mariadb-dev-container
    environment:
      # กำหนดค่าตัวแปรสภาพแวดล้อม (Environment Variables)
      MARIADB_ROOT_PASSWORD: YourStrongRootPassword
      MARIADB_DATABASE: app_db
      MARIADB_USER: app_user
      MARIADB_PASSWORD: app_password
    image: mariadb:latest
    ports:
      - "3306:3306" # Host:Container
    restart: unless-stopped
    volumes:
      # การแมป Volume เพื่อให้ข้อมูลคงอยู่แม้ Container จะถูกลบ
      - ./data:/var/lib/mysql

คำอธิบายโค้ด:

  • container_name: ชื่อที่ใช้เรียก Container ทำให้ง่ายต่อการอ้างอิง
  • environment: ใช้กำหนดรหัสผ่านและชื่อฐานข้อมูลที่จำเป็นสำหรับการเชื่อมต่อ
  • ports: เปิดพอร์ต 3306 จากเครื่อง Host ไปยัง Container
  • volumes: เป็นส่วนสำคัญที่รับประกันว่าข้อมูล (/var/lib/mysql) จะถูกบันทึกไว้ในโฟลเดอร์ ./data บนเครื่องของคุณ

🚀 ขั้นตอนที่ 2: การติดตั้งและรัน Container

เมื่อไฟล์ docker-compose.yml พร้อมแล้ว ให้รันคำสั่งต่อไปนี้ใน Terminal ภายใน Directory ที่คุณสร้างไว้:

BASH / Shell

docker compose up -d

คำสั่งนี้จะดาวน์โหลด Image ของ MariaDB และรัน Container ในโหมด Detached (-d) ทำให้ Container ทำงานอยู่เบื้องหลัง

🧪 ขั้นตอนที่ 3: การทดสอบการเชื่อมต่อ (Verification)

หลังจาก Container รันแล้ว เราสามารถตรวจสอบการเชื่อมต่อได้โดยการเข้าสู่ Command Line Interface (CLI) ของ Container โดยตรง ซึ่งเป็นวิธีที่ปลอดภัยและมีประสิทธิภาพ

ตัวอย่างการเข้าสู่ Shell ของ Container:

BASH / Shell

docker exec -it mariadb-dev-container mariadb -u root -pYourStrongRootPassword

เมื่อเข้าสู่ Prompt ของ MariaDB แล้ว ให้รันคำสั่ง SQL เพื่อสร้างตารางทดสอบ:

SQL

-- สร้างตารางทดสอบ
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

-- แทรกข้อมูลเพื่อยืนยันการทำงาน
INSERT INTO users (id, name, email) VALUES (1, 'apple', '[email protected]');

-- ตรวจสอบข้อมูล
SELECT * FROM users;

<0xF0><0x9F><0x97><0x83>️ การจัดการและการสำรองข้อมูล (Management & Backup)

ในฐานะ Senior Architect การจัดการข้อมูลเป็นเรื่องสำคัญ เราจึงต้องรู้วิธี Backup ข้อมูลอย่างถูกวิธี

การสำรองข้อมูล (Backup)

ใช้คำสั่ง docker exec เพื่อรันคำสั่ง mariadb-dump ภายใน Container:

BASH / Shell

docker exec mariadb-dev-container mariadb-dump -u root -pYourStrongRootPassword --all-databases > backup_$(date +%Y%m%d).sql

คำสั่งนี้จะดึงข้อมูลทั้งหมดจากฐานข้อมูลใน Container และบันทึกเป็นไฟล์ SQL บนเครื่อง Host ของคุณ

✅ บทสรุป (Conclusion)

การใช้ Docker Compose เพื่อรัน MariaDB Container ไม่เพียงแต่ช่วยให้การตั้งค่าฐานข้อมูลเป็นเรื่องง่ายเท่านั้น แต่ยังช่วยให้มั่นใจได้ว่าสภาพแวดล้อมการพัฒนาของคุณมีความสม่ำเสมอและสามารถทำซ้ำได้ (Reproducible) ไม่ว่าคุณจะทำงานบนเครื่องใดก็ตาม การเรียนรู้การจัดการ Container เหล่านี้ถือเป็นทักษะหลักที่ขาดไม่ได้สำหรับนักพัฒนาซอฟต์แวร์ยุคใหม่

Exit mobile version