บทความนี้สอนสร้าง Dockerfile เพื่อติดตั้ง PostgreSQL ซึ่งเป็นฐานข้อมูลแบบโอเพนซอร์สที่ได้รับความนิยมอย่างมาก การสร้าง Dockerfile ช่วยให้เราสามารถติดตั้ง และใช้งาน PostgreSQL แยกจากระบบอื่นๆ ได้อย่างอิสระ ทำให้ไม่ส่งผลกระทบใดๆ กับระบบที่มีอยู่แล้ว โดยมีขั้นตอนดังนี้
ตัวอย่าง การสร้าง Dockerfile สำหรับ PostgreSQL
1. สร้าง Dockerfile และเขียนคำสั่งลงในไฟล์
FROM postgres:latest
ENV POSTGRES_USER myuser
ENV POSTGRES_PASSWORD mysecretpassword
ENV POSTGRES_DB mydatabase
EXPOSE 5432
จากตัวอย่างดาวน์โหลด Docker image ชื่อว่า postgres เวอร์ชันล่าสุด พร้อมกำหนดค่าเพิ่มเติมสำหรับเข้าใช้งาน
- POSTGRES_USER คือ กำหนดชื่อผู้เข้าใช้งานเป็น myuser
- POSTGRES_PASSWORD คือ กำหนดรหัสผ่านของผู้ใช้งานเป็น mypassword
- POSTGRES_DB คือ กำหนดชื่อฐานข้อมูลเป็น mydb
2. build Dockerfile เพื่อสร้าง image ชื่อ my_postgres ด้วยคำสั่ง
docker build -t my_postgres .
3. สร้าง container ชื่อ my_postgres_container จาก image my_postgres ด้วยคำสั่ง
docker run -d --name my_postgres_container my_postgres
4. ตรวจสอบว่ามี container ชื่อ my_postgres_container รันอยู่หรือไม่ด้วยคำสั่ง
docker ps
// ผลลัพธ์
CONTAINER ID IMAGE PORTS NAMES
b2f99f120bbd my_postgres 5432/tcp my_postgres_container
5. เข้าไปใน cotnainer my_postgres_container ด้วยคำสั่ง
docker exec -it my_postgres_container bash
6. ตรวจสอบเวอร์ชันของ PostgreSQL ที่ได้ติดตั้งผ่าน Dockerfile ด้วยคำสั่ง
psql -V
// ผลลัพธ์
psql (PostgreSQL) 16.0 (Debian 16.0-1.pgdg120+1)
7. เข้าไปในฐานข้อมูลชื่อ mydatabase ด้วยชื่อผู้เข้าใช้งาน myuser
psql -U myuser mydatabase
// ผลลัพธ์
psql (16.0 (Debian 16.0-1.pgdg120+1))
Type "help" for help.
mydatabase=#
8. ทดสอบคำสั่ง SQL แสดงเวอร์ชันของ PostgreSQL
mydatabase=# SELECT VERSION();
// ผลลัพธ์
PostgreSQL 16.0 (Debian 16.0-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
(1 row)