🐳 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 เป็นไปอย่างอัตโนมัติ
- สร้าง Directory: สร้างโฟลเดอร์สำหรับเก็บไฟล์ Configuration และข้อมูล (Volume) ของ Database ก่อน
mkdir -p ./docker-mariadb-project - สร้างไฟล์ 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 ไปยัง Containervolumes: เป็นส่วนสำคัญที่รับประกันว่าข้อมูล (/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 เหล่านี้ถือเป็นทักษะหลักที่ขาดไม่ได้สำหรับนักพัฒนาซอฟต์แวร์ยุคใหม่