ในบทความนี้ เราจะอธิบายวิธีตั้งค่า PostgreSQL ด้วย docker-compose.yml อย่างละเอียด พร้อมการใช้งาน volume เพื่อจัดการข้อมูลถาวร
การตั้งค่า PostgreSQL ด้วย Docker Compose
- สร้างไฟล์
docker-compose.yml
เริ่มต้นด้วยการสร้างไฟล์ docker-compose.yml
และเพิ่มโค้ดดังนี้:
version: '3.8'
services:
postgres:
image: postgres:13
container_name: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: my_database
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
อธิบายส่วนประกอบ
version
: ระบุเวอร์ชัน Docker Compose (ในตัวอย่างใช้3.8
)services
: กำหนดบริการที่ต้องการใช้งาน โดยในที่นี้คือ PostgreSQLimage
: ใช้ postgres:13 ซึ่งเป็น PostgreSQL เวอร์ชัน 13container_name
: ตั้งชื่อ container เป็นpostgres
environment
:POSTGRES_USER
: ชื่อผู้ใช้สำหรับเชื่อมต่อฐานข้อมูลPOSTGRES_PASSWORD
: รหัสผ่านPOSTGRES_DB
: ชื่อฐานข้อมูลที่จะสร้างports
: กำหนดการแมปพอร์ตระหว่าง host และ container (5432:5432
)volumes
: Mount volume ชื่อ postgres_data ไปยัง/var/lib/postgresql/data
เพื่อจัดเก็บข้อมูลถาวร
- รันคำสั่งเพื่อเริ่มใช้งาน
เปิด terminal แล้วรันคำสั่ง:
docker-compose up -d
-d
: รัน container แบบ background
หลังจากรันคำสั่ง จะมี container PostgreSQL พร้อมใช้งานที่ localhost:5432
- ทดสอบการเชื่อมต่อ
ใช้เครื่องมือเชื่อมต่อฐานข้อมูล เช่น pgAdmin, DBeaver, หรือ psql CLI โดยกรอกค่าต่อไปนี้:
- Host:
127.0.0.1
- Port:
5432
- User:
user
- Password:
password
- Database:
my_database
- การลบข้อมูลถาวร (Clean up)
หากต้องการลบข้อมูลทั้งหมดใน volume ให้รันคำสั่ง:
docker-compose down -v
คำสั่งนี้จะหยุด container และลบ volume (postgres_data
) ออก
สรุป
การตั้งค่า PostgreSQL ด้วย Docker Compose เป็นวิธีที่สะดวกสำหรับนักพัฒนาที่ต้องการฐานข้อมูลพร้อมใช้งานในเวลาอันรวดเร็ว