ส่วนตัวแล้วไม่ได้ใช้งาน SQL Server บ่อยนัก แต่ได้มีโอกาสใช้เพราะโปรเจกต์หนึ่งจำเป็นต้องใช้ ก็เลยเขียน docker-compose เก็บไว้กันลืม และไม่อยากเก็บไว้คนเดียว เลยเขียนเป็น blog post ไว้ด้วยละกัน เผื่อใครสนใจหรือกำลังมองหาอยู่ จะได้นำไปลองใช้งานกันได้
ก่อนเริ่มใช้งาน อย่าลืมปรับ RAM ของ Podman หรือ Docker ให้ไม่น้อยกว่า 2GB (SQL Server ต้องการขั้นต่ำ) และแนะนำให้จัดสรร CPU อย่างน้อย 2 คอร์เพื่อประสิทธิภาพที่ดีขึ้น
🐳 เตรียมไฟล์ docker-compose.yml
เริ่มจากสร้างไฟล์ docker-compose.yml
เพื่อใช้สำหรับสร้าง container
version: "3.8"
services:
mssql_db:
image: mcr.microsoft.com/mssql/server
container_name: mssql_db
environment:
- ACCEPT_EULA=Y
- MSSQL_SA_PASSWORD=TH1S_IS_SECRET_D0_N0T_TELL_ANYONE
ports:
- "1433:1433"
volumes:
- sqlserver_data:/var/opt/mssql
restart: unless-stopped
volumes:
sqlserver_data:
🏃♂️ ลองรัน docker-compose กัน
เรามารัน docker-compose ด้วยคำสั่ง podman-compose up -d
(ใครใช้ docker ก็ใช้ docker-compose up -d ได้เลย)
จากนั้นก็รอ pull image และสร้าง container สักครู่
6d1d4f77e839f7ad562305ee68ebc1812f65c0c237e77b5840bd446cd28c205b
Trying to pull mcr.microsoft.com/mssql/server:latest...
Getting image source signatures
Copying blob sha256:d9043883789c6369728ef8c1a3e4d85ee9be27955e1852fcee7c41e4e3074344
Copying blob sha256:86752e6fd4ef2ac6357850f59d6ae540f767c259c374516dc352039a9489d33b
Copying blob sha256:186a7f1a30ef240c4f08e6ab4705bb9dfb93b27e805b6b44644d5beb01c28f29
Copying config sha256:2b41d0be82839692f678a709e8b7dd6106ee4776b0e70759c59b067730058b04
Writing manifest to image destination
WARNING: image platform (linux/amd64) does not match the expected platform (linux/arm64)
5b5a78e61563edf582e527af84ce9832f66fc94f8022e2c9b64186a87e657fb8
รันคำสั่ง podman ps
(docker ps
สำหรับ docker) เพื่อดูว่า container ถูกสร้างขึ้นเรียบร้อย และสามารถทำงานได้ปกติ
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b5a78e61563 mcr.microsoft.com/mssql/server:latest /opt/mssql/bin/sq... 20 seconds ago Up 20 seconds 0.0.0.0:1433->1433/tcp mssql_db
🚀 ลองทดสอบด้วย DBeaver
หลังจากที่สร้าง Container เสร็จ เราลองมาเชื่อมด้วย DBeaver กันดูหน่อย
- เริ่มจากเพิ่ม Connection ใหม่ แล้วเลือก SQL Server

- ใส่ user กับ password โดย user จะเป็น sa และ password จะเป็นที่เรากำหนดไว้ใน docker-compose file

- ลอง Test Connection ถ้าขึ้นแบบนี้ก็แสดงว่าเชื่อมต่อได้ ไม่ติดปัญหาอะไร

- เพียงเท่านี้ก็เรียบร้อย เราก็สามารถใช้ SQL Server บน Container ได้แล้ว
