ตั้งค่า PostgreSQL ด้วย Docker Compose

·

ในบทความนี้ เราจะอธิบายวิธีตั้งค่า PostgreSQL ด้วย docker-compose.yml อย่างละเอียด พร้อมการใช้งาน volume เพื่อจัดการข้อมูลถาวร


การตั้งค่า PostgreSQL ด้วย Docker Compose

  1. สร้างไฟล์ 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:

อธิบายส่วนประกอบ

  1. version: ระบุเวอร์ชัน Docker Compose (ในตัวอย่างใช้ 3.8)
  2. services: กำหนดบริการที่ต้องการใช้งาน โดยในที่นี้คือ PostgreSQL
  3. image: ใช้ postgres:13 ซึ่งเป็น PostgreSQL เวอร์ชัน 13
  4. container_name: ตั้งชื่อ container เป็น postgres
  5. environment:
    • POSTGRES_USER: ชื่อผู้ใช้สำหรับเชื่อมต่อฐานข้อมูล
    • POSTGRES_PASSWORD: รหัสผ่าน
    • POSTGRES_DB: ชื่อฐานข้อมูลที่จะสร้าง ports: กำหนดการแมปพอร์ตระหว่าง host และ container (5432:5432) volumes: Mount volume ชื่อ postgres_data ไปยัง /var/lib/postgresql/data เพื่อจัดเก็บข้อมูลถาวร

  1. รันคำสั่งเพื่อเริ่มใช้งาน

เปิด terminal แล้วรันคำสั่ง:

docker-compose up -d
  • -d: รัน container แบบ background

หลังจากรันคำสั่ง จะมี container PostgreSQL พร้อมใช้งานที่ localhost:5432


  1. ทดสอบการเชื่อมต่อ

ใช้เครื่องมือเชื่อมต่อฐานข้อมูล เช่น pgAdmin, DBeaver, หรือ psql CLI โดยกรอกค่าต่อไปนี้:

  • Host: 127.0.0.1
  • Port: 5432
  • User: user
  • Password: password
  • Database: my_database

  1. การลบข้อมูลถาวร (Clean up)

หากต้องการลบข้อมูลทั้งหมดใน volume ให้รันคำสั่ง:

docker-compose down -v

คำสั่งนี้จะหยุด container และลบ volume (postgres_data) ออก


สรุป

การตั้งค่า PostgreSQL ด้วย Docker Compose เป็นวิธีที่สะดวกสำหรับนักพัฒนาที่ต้องการฐานข้อมูลพร้อมใช้งานในเวลาอันรวดเร็ว

🚀 เรารับทำเว็บไซต์คุณภาพสูง

พร้อมบริการหลังการขายและรับประกันผลงาน

จ้างเราผ่าน Fastwork

🌐 ระบบสร้างเว็บไซต์อัตโนมัติจาก GenWebBlog

สร้างเว็บไซต์พร้อมใช้งานได้ในไม่กี่นาที พร้อม SEO และ Dark Mode

เยี่ยมชม GenWebBlog